Créer une application Ruby

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 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 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 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.