Ruby-Anwendung erstellen

Ruby-Versionen angeben

Das Buildpacks-Projekt unterstützt den aktuellen und den Active LTS-Release von Ruby. Ältere Versionen von Ruby sind verfügbar, werden aber möglicherweise nicht aktiv vom Projekt verwaltet.

Gemfile.lock verwenden

Wenn Ihre Anwendung Bundler verwendet, sollte sich Gemfile.lock im Stammverzeichnis Ihres Repositorys befinden. Ruby-Buildpacks verwenden automatisch eine Version, die dauerhaft mit Ihrer Gemfile.lock verknüpft ist. Wenn Ihre Gemfile.lock beispielsweise Folgendes enthält:

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.

Bundler-Version

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.