Spécifier les versions de Ruby
Le projet des packs de création est compatible avec la version actuelle et la version Active LTS de Ruby. D'anciennes versions de Ruby sont disponibles, mais peuvent ne pas être gérées activement par le projet.
Utiliser un fichier de cookie (Gemfile.lock
)
Si votre application utilise bundler, Gemfile.lock doit être placé à la racine de votre dépôt. Les packs de création Ruby utilisent automatiquement une version verrouillée de votre fichier Gemfile.lock. Par exemple, si votre fichier Gemfile.lock contient les éléments suivants :
RUBY VERSION
ruby 3.0.3p0
Les packs de création utiliseront automatiquement Ruby 3.0.3, avec le dernier niveau de correctif.
Utiliser un fichier de cookie (GOOGLE_RUNTIME_VERSION
)
Si vous n'utilisez pas Bundler, vous pouvez spécifier une version Ruby à l'aide de la variable d'environnement comme suit :
pack build --builder=gcr.io/buildpacks/builder \
sample-ruby \
--env GOOGLE_RUNTIME_VERSION=3.0.3
Vous pouvez également utiliser un descripteur de projet project.toml
pour encoder la variable d'environnement avec vos fichiers de projet. Consultez les instructions décrivant la compilation de l'application avec des variables d'environnement.
Si vous utilisez bundler, GOOGLE_RUNTIME_VERSION
ne peut pas être utilisé pour remplacer la version spécifiée dans Gemfile.lock sous RUBY VERSION
.
Installer les dépendances
Utiliser Bundler
- Bundler est le gestionnaire de packages par défaut.
- Procédez au commit de
Gemfile.lock
dans votre dépôt, car nous utilisons le fichier de verrouillage pour créer l'application. - Par défaut, seules les dépendances de production sont installées.
Version de Bundler
Bundler présente des problèmes de compatibilité connus.
Si votre application utilise bundler, en raison de divers problèmes de compatibilité avec Ruby et Rubygems, nous mettons à jour le fichier Gemfile.lock dans l'application compilée pour utiliser l'une des deux versions compatibles.
Toutes les applications utilisant Bundler 1.* et 2.* dans BUNDLED WITH
sont normalisées pour utiliser Bundler 1.17.3 et 2.3.15.
Spécifier un point d'entrée
Utiliser Procfile
Vous pouvez spécifier un point d'entrée, une commande qui s'exécute au démarrage du conteneur, à l'aide de Procfile. Par exemple, avec le code suivant dans votre fichier Procfile à la racine de votre application :
web: ruby main.rb
Le buildpack Ruby utilisera la commande ruby main.rb
comme point d'entrée du conteneur créé.
Par défaut, la cible web
du fichier Procfile est utilisée.
Pour utiliser un point d'entrée différent, vous pouvez spécifier une cible différente depuis votre fichier Procfile en tant qu'argument.
Avec un fichier Procfile contenant les éléments suivants : web: ruby main.rb
custom: ruby custom.rb
Vous pouvez utiliser la cible Procfile personnalisée en la transmettant en tant qu'argument : bash
pack build --builder=gcr.io/buildpacks/builder \
sample-ruby \
--entrypoint=custom
Utiliser un fichier de cookie (GOOGLE_ENTRYPOINT
)
Si vous n'utilisez pas de fichier Procfile ou si vous souhaitez remplacer le fichier Procfile, vous pouvez spécifier un point d'entrée à l'aide de la variable d'environnement GOOGLE_ENTRYPOINT
. Exemple :
pack build --builder=gcr.io/buildpacks/builder \
sample-ruby \
--env GOOGLE_ENTRYPOINT="ruby custom.rb"
Variables d'environnement
Le buildpack Ruby est compatible avec les variables d'environnement suivantes pour personnaliser votre conteneur :
BUNDLE_
Consultez la documentation bundler
.
Exemple : BUNDLE_TIMEOUT=60
permet de définir le paramètre --timeout=60
pour les commandes bundle
.