Specificare le versioni di Ruby
Il progetto buildpack fornisce il supporto per la release corrente e la release LTS attiva di Ruby. Sono disponibili release precedenti di Ruby, ma potrebbero non essere attivamente gestite dal progetto.
Uso: Gemfile.lock
Se la tua applicazione utilizza Bundler, dovresti avere Gemfile.lock nella radice del tuo repository. I buildpack Ruby utilizzeranno automaticamente una versione bloccata in Gemfile.lock. Ad esempio, se il tuo Gemfile.lock contiene quanto segue:
RUBY VERSION
ruby 3.0.3p0
I buildpack utilizzeranno automaticamente Ruby 3.0.3, con il livello di patch più recente.
Uso: 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 del progetto. Consulta le istruzioni sulla creazione dell'applicazione con le variabili di ambiente.
Se utilizzi Bundler,GOOGLE_RUNTIME_VERSION
non può essere utilizzato per sostituire la versione specificata in Gemfile.lock
sotto RUBY VERSION
.
Installazione delle dipendenze
Utilizzo di Bundler
- Bundler è il gestore dei pacchetti predefinito
- Esegui il commit di
Gemfile.lock
nel tuo repo perché utilizziamo il file di blocco per compilare l'app - Per impostazione predefinita vengono installate solo le dipendenze di produzione
Versione del 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 il file Gemfile.lock nell'app compilata in modo da utilizzare una delle due versioni supportate.
Tutte le applicazioni che utilizzano il bundler 1.* e 2.* in BUNDLED WITH
sono normalizzate per utilizzare il bundler 1.17.3 e 2.3.15.
Specifica di un punto di ingresso
Utilizzo di Procfile
Puoi specificare un punto di contatto, un comando che viene eseguito all'avvio del contenitore, utilizzando Procfile. Ad esempio, con quanto segue nel file Procfile nella directory principale dell'app:
web: ruby main.rb
Il buildpack Ruby utilizzerà il comando ruby main.rb
come entry point del container creato.
Per impostazione predefinita viene utilizzato il target web
del file Procfile.
Per utilizzare un punto di contatto diverso, puoi specificare un target diverso dal tuo Procfile come argomento.
Con un file 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
Uso: GOOGLE_ENTRYPOINT
Se non utilizzi un file Procfile o vuoi sostituirlo, puoi specificare un punto di contatto
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 contenitore
BUNDLE_
Consulta la documentazione di bundler
.
Esempio: BUNDLE_TIMEOUT=60
imposta --timeout=60
per i comandi bundle
.