Specificare le versioni di Ruby
Il progetto buildpack fornisce il supporto per la release corrente e la release LTS attiva di Ruby. Le release precedenti di Ruby sono disponibili, ma potrebbero non essere gestite attivamente dal progetto.
Utilizzare Gemfile.lock
Se la tua applicazione utilizza bundler, dovresti avere Gemfile.lock nella root del repository. I buildpack Ruby utilizzeranno automaticamente una versione bloccata in Gemfile.lock. Ad esempio, se Gemfile.lock contiene quanto segue:
RUBY VERSION
ruby 3.0.3p0
I buildpack utilizzeranno automaticamente Ruby 3.0.3, con l'ultimo livello di patch.
Utilizzare GOOGLE_RUNTIME_VERSION
Se non utilizzi bundler, puoi specificare una versione di Ruby utilizzando la variabile di ambiente come segue:
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 per la
creazione dell'applicazione con le variabili di ambiente.
Se utilizzi bundler,GOOGLE_RUNTIME_VERSION non può essere utilizzato per eseguire l'override della versione specificata in Gemfile.lock in RUBY VERSION.
Installare le dipendenze
Utilizzare Bundler
- Bundler è il gestore di pacchetti predefinito
- Esegui il commit di
Gemfile.locknel repository perché utilizziamo il file di blocco per creare l'app - Per impostazione predefinita, vengono installate solo le dipendenze di produzione
Versione di 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 per utilizzare una delle due versioni supportate.
Tutte le applicazioni che utilizzano bundler 1.* e 2.* in BUNDLED WITH vengono normalizzate per utilizzare bundler 1.17.3 e 2.3.15.
Specificare un punto di ingresso
Utilizzare 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 root 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 un target diverso da Procfile come argomento.
Con un Procfile contenente quanto segue:
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
Utilizzare 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.