Creazione di un'applicazione Ruby

Specifica delle versioni di Ruby

Il progetto buildpacks fornisce supporto per la release corrente e la release Active LTS di Ruby. Le release precedenti di Ruby sono disponibili, ma potrebbero non essere gestite attivamente dal progetto.

Uso: Gemfile.lock

Se la tua applicazione utilizza bundler, dovresti avere Gemfile.lock nella directory radice del repository. I buildpack Ruby utilizzeranno automaticamente una versione bloccata in Gemfile.lock. Ad esempio, se il tuo Gemfile.lock ha quanto segue:

RUBY VERSION
  ruby 3.0.3p0

I buildpack utilizzeranno automaticamente Ruby 3.0.3, con il livello patch più recente.

Uso: GOOGLE_RUNTIME_VERSION

Se non utilizzi bundler, puoi specificare una versione ruby utilizzando la variabile di ambiente nel seguente modo:

pack build --builder=gcr.io/buildpacks/builder \
   sample-ruby \
   --env GOOGLE_RUNTIME_VERSION=3.0.3

Puoi anche utilizzare un descrittore di progetto project.toml per codificare la variabile di ambiente insieme ai file di progetto. Consulta le istruzioni sulla creazione dell'applicazione con variabili di ambiente.

Se utilizzi bundler,non puoi utilizzare GOOGLE_RUNTIME_VERSION per eseguire l'override della versione specificata in Gemfile.lock in RUBY VERSION.

Installazione delle dipendenze

Utilizzo di Bundler

  • Bundler è il gestore di pacchetti predefinito
  • Esegui il commit di Gemfile.lock nel repository, poiché utilizziamo il file di blocco per creare l'app
  • Per impostazione predefinita, sono installate solo le dipendenze di produzione

Versione Bundler

Bundler presenta problemi di compatibilità noti. Se la tua applicazione utilizza bundler, a causa di vari problemi di compatibilità con Ruby e Rubygems, aggiorniamo Gemfile.lock nell'app creata in modo che utilizzi una delle due versioni supportate. Tutte le applicazioni che utilizzano bundler 1.* e 2.* in BUNDLED WITH sono normalizzate per l'uso di bundler 1.17.3 e 2.3.15.

Specifica di un punto di ingresso

Utilizzo di Procfile

Puoi specificare un punto di ingresso, un comando che viene eseguito all'avvio del container, utilizzando Procfile. Ad esempio, con quanto segue in Procfile nella directory principale dell'app:

web: ruby main.rb

Il buildpack Ruby utilizzerà il comando ruby main.rb come punto di ingresso del container creato. Per impostazione predefinita, viene utilizzato il target web di Procfile.

Per utilizzare un punto di ingresso diverso, puoi specificare come argomento una destinazione diversa da Procfile.

Con un Procfile contenente: web: ruby main.rb custom: ruby custom.rb

Puoi utilizzare il target Procfile personalizzato passandolo come argomento: bash pack build --builder=gcr.io/buildpacks/builder \ sample-ruby \ --entrypoint=custom

Uso: GOOGLE_ENTRYPOINT

Se non utilizzi un Procfile o vuoi eseguire l'override di Procfile, puoi specificare un punto di ingresso utilizzando la variabile di ambiente GOOGLE_ENTRYPOINT. Ecco un esempio:

pack build --builder=gcr.io/buildpacks/builder \
   sample-ruby \
   --env GOOGLE_ENTRYPOINT="ruby custom.rb"

Variabili di ambiente

Il buildpack Ruby supporta le seguenti variabili di ambiente per personalizzare il container

BUNDLE_

Consulta la documentazione di bundler.

Esempio: BUNDLE_TIMEOUT=60 imposta --timeout=60 per i comandi bundle.