Especificar versiones de Ruby
El proyecto buildpacks ofrece asistencia para la versión actual y la versión LTS activa de Ruby. Hay versiones anteriores de Ruby disponibles, pero es posible que el proyecto no las mantenga activamente.
Estás usando Gemfile.lock
Si tu aplicación usa bundler, deberías tener Gemfile.lock en la raíz de tu repositorio. Los buildpacks de Ruby usarán automáticamente una versión bloqueada en tu Gemfile.lock. Por ejemplo, si tu archivo Gemfile.lock tiene el siguiente contenido:
RUBY VERSION
ruby 3.0.3p0
Los buildpacks usarán automáticamente Ruby 3.0.3 con el nivel de parche más reciente.
Estás usando 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 proyecto 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
.
Instalar dependencias
Usar Bundler
- Bundler es el gestor de paquetes predeterminado
- Confirma
Gemfile.lock
en tu repositorio, ya que usamos el archivo de bloqueo para compilar la aplicación. - De forma predeterminada, solo se instalan las dependencias de producción
Versión de Bundler
Bundler tiene problemas de compatibilidad.
Si tu aplicación usa bundler, debido a varios problemas de compatibilidad con Ruby y Rubygems, actualizamos el archivo Gemfile.lock de la aplicación compilada para que use una de las dos versiones admitidas.
Todas las aplicaciones que usen bundler 1.* y 2.* en BUNDLED WITH
se normalizan para usar bundler 1.17.3 y 2.3.15.
Especificar un punto de entrada
Usar Procfile
Puedes especificar un punto de entrada, un comando que se ejecuta cuando se inicia el contenedor, mediante Procfile. Por ejemplo, si tienes lo siguiente en el archivo Procfile de la raíz de tu aplicación:
web: ruby main.rb
El paquete de compilación de Ruby usará el comando ruby main.rb
como punto de entrada del contenedor compilado.
De forma predeterminada, se usa el objetivo web
del archivo Procfile.
Para usar otro punto de entrada, puedes especificar otro destino de tu Procfile como argumento.
Con un Procfile que contenga lo siguiente:
web: ruby main.rb
custom: ruby custom.rb
Puedes usar el destino Procfile personalizado pasándolo como argumento:
bash
pack build --builder=gcr.io/buildpacks/builder \
sample-ruby \
--entrypoint=custom
Estás usando GOOGLE_ENTRYPOINT
Si no usas un archivo Procfile o quieres anularlo, puedes especificar un punto de entrada mediante la variable de entorno GOOGLE_ENTRYPOINT
. Veamos un 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_
Consulta la bundler
documentación.
Ejemplo: BUNDLE_TIMEOUT=60
define --timeout=60
para los comandos bundle
.