Ruby-Versionen angeben
Das Buildpacks-Projekt unterstützt den aktuellen und den Active LTS-Release von Ruby. Ältere Releases von Ruby sind verfügbar, werden aber möglicherweise nicht aktiv vom Projekt gepflegt.
Gemfile.lock
verwenden
Wenn Ihre Anwendung Bundler verwendet, sollte Gemfile.lock im Stammverzeichnis des Repositorys vorhanden sein. Ruby-Buildpacks verwenden automatisch eine Version, die dauerhaft mit Ihrer Gemfile.lock verknüpft ist. Angenommen, Ihre Gemfile.lock enthält Folgendes:
RUBY VERSION
ruby 3.0.3p0
Die Buildpacks verwenden automatisch Ruby 3.0.3 mit der aktuellsten Patchebene.
GOOGLE_RUNTIME_VERSION
verwenden
Wenn Sie Bundler nicht verwenden, können Sie über die Umgebungsvariable eine Ruby-Version festlegen:
pack build --builder=gcr.io/buildpacks/builder \
sample-ruby \
--env GOOGLE_RUNTIME_VERSION=3.0.3
Sie können auch den project.toml
-Projektdeskriptor verwenden, um die Umgebungsvariable zusammen mit den Projektdateien zu codieren. Weitere Informationen finden Sie unter Anwendung mit Umgebungsvariablen erstellen.
Wenn Sie Bundler verwenden, kann GOOGLE_RUNTIME_VERSION
nicht zum Überschreiben der angegebenen Version in Gemfile.lock unter RUBY VERSION
verwendet werden.
Abhängigkeiten installieren
Bundler verwenden
- Bundler ist der Standard-Paketmanager
- Führen Sie für
Gemfile.lock
ein Commit in Ihr Repository durch, da wir die Sperrdatei zum Erstellen der Anwendung nutzen. - Standardmäßig werden nur Produktionsabhängigkeiten installiert.
Version des Bundlers
Bundler hat bekannte Kompatibilitätsprobleme.
Wenn Ihre Anwendung Bundler wegen verschiedener Kompatibilitätsprobleme mit Ruby und Rubygems verwendet, aktualisieren wir die Gemfile.lock in der erstellten Anwendung so, dass eine der beiden unterstützten Versionen verwendet wird.
Alle Anwendungen, die Bundler 1.* und 2.* in BUNDLED WITH
verwenden, werden auf die Bundler 1.17.3 und 2.3.15 normalisiert.
Einstiegspunkt angeben
Procfile verwenden
Sie können mit Procfile einen Einstiegspunkt angeben, einen Befehl, der beim Start des Containers ausgeführt wird. Wenn beispielsweise folgende Elemente in Ihrer Procfile-Datei im Stammverzeichnis Ihrer Anwendung sind:
web: ruby main.rb
Verwendet das Ruby-Buildpack den Befehl ruby main.rb
als Einstiegspunkt des Built-Containers.
Standardmäßig wird das web
-Ziel aus der Procfile verwendet.
Wenn Sie einen anderen Einstiegspunkt verwenden möchten, können Sie ein anderes Ziel als Ihrer Procfile als Argument angeben.
Mit einer Procfile mit folgendem Inhalt:
web: ruby main.rb
custom: ruby custom.rb
Können Sie das benutzerdefinierte Procfile-Ziel verwenden. Dazu übergeben Sie es als Argument: bash
pack build --builder=gcr.io/buildpacks/builder \
sample-ruby \
--entrypoint=custom
GOOGLE_ENTRYPOINT
verwenden
Wenn Sie keine Procfile nutzen oder die Procfile überschreiben möchten, können Sie einen Einstiegspunkt mit der GOOGLE_ENTRYPOINT
-Umgebungsvariable angeben. Beispiel:
pack build --builder=gcr.io/buildpacks/builder \
sample-ruby \
--env GOOGLE_ENTRYPOINT="ruby custom.rb"
Umgebungsvariablen
Das Ruby-Buildpack unterstützt folgende Umgebungsvariablen, um Ihren Container anzupassen
BUNDLE_
Siehe die bundler
Dokumentation.
Beispiel: BUNDLE_TIMEOUT=60
legt --timeout=60
für bundle
-Befehle fest.