Especifica versiones de Ruby
El proyecto de paquetes de compilación proporciona compatibilidad con la versión actual y la versión activa LTS de Ruby. Las versiones anteriores de Ruby están disponibles, pero es posible que el proyecto no las mantenga activamente.
Usa Gemfile.lock
Si tu aplicación usa bundler, deberías tener Gemfile.lock en la raíz de tu repositorio. Los paquetes de compilación de Ruby usarán automáticamente una versión que esté bloqueada en tu Gemfile.lock. Por ejemplo, si tu Gemfile.lock tiene lo siguiente:
RUBY VERSION
ruby 3.0.3p0
Los paquetes de compilación usarán automáticamente Ruby 3.0.3 con el último nivel de parche.
Usa GOOGLE_RUNTIME_VERSION
Si no usas bundler, puedes especificar una versión de Ruby con la variable de entorno de la siguiente manera:
pack build --builder=gcr.io/buildpacks/builder \
sample-ruby \
--env GOOGLE_RUNTIME_VERSION=3.0.3
También puedes usar un descriptor de proyectos project.toml
para codificar la variable de entorno junto con los archivos de tu proyecto. Consulta las instrucciones para compilar la aplicación con variables de entorno.
Si usas bundler, GOOGLE_RUNTIME_VERSION
no se puede usar para anular la versión especificada en Gemfile.lock en RUBY VERSION
.
Instala dependencias
Usa Bundler
- Bundler es el administrador de paquetes predeterminado.
- Confirma
Gemfile.lock
en tu repositorio, ya que usamos el archivo de bloqueo para compilar la app. - De forma predeterminada, solo se instalan las dependencias de producción
Versión de Bundler
Bundler tiene problemas de compatibilidad conocidos.
Si tu aplicación usa bundler debido a varios problemas de compatibilidad con Ruby y Rubygems, actualizamos Gemfile.lock en la app compilada para usar una de las dos versiones compatibles.
Todas las aplicaciones que usan bundler 1.* y 2.* en BUNDLED WITH
se normalizan para usar el bundler 1.17.3 y 2.3.15.
Especifica un punto de entrada
Usa Procfile
Puedes especificar un punto de entrada, un comando que se ejecuta cuando se inicia el contenedor, mediante Procfile. Por ejemplo, con lo siguiente en tu Procfile en la raíz de tu app:
web: ruby main.rb
El paquete de compilación de Ruby usará el comando ruby main.rb
como el punto de entrada del contenedor compilado.
De forma predeterminada, se usa el objetivo web
del Procfile.
Para usar un punto de entrada diferente, puedes especificar un destino diferente de tu Procfile como argumento.
Con un Procfile que contiene lo siguiente: web: ruby main.rb
custom: ruby custom.rb
Puedes usar el destino de Procfile personalizado si lo pasas como un argumento: bash
pack build --builder=gcr.io/buildpacks/builder \
sample-ruby \
--entrypoint=custom
Usa GOOGLE_ENTRYPOINT
Si no usas un Procfile o deseas anular el Procfile, puedes especificar un punto de entrada mediante la variable de entorno GOOGLE_ENTRYPOINT
. Por ejemplo:
pack build --builder=gcr.io/buildpacks/builder \
sample-ruby \
--env GOOGLE_ENTRYPOINT="ruby custom.rb"
Variables de entorno
El paquete de compilación de Ruby admite las siguientes variables de entorno para personalizar tu contenedor
BUNDLE_
Ve la documentación de bundler
.
Ejemplo: BUNDLE_TIMEOUT=60
configura --timeout=60
para los comandos bundle
.