Criar uma aplicação Ruby

Especificar versões do Ruby

O projeto Buildpacks oferece suporte para a versão atual e a versão LTS ativa do Ruby. As versões mais antigas do Ruby estão disponíveis, mas podem não ser mantidas ativamente pelo projeto.

A usar Gemfile.lock

Se a sua aplicação usar o bundler, deve ter o Gemfile.lock na raiz do seu repositório. Os buildpacks do Ruby usam automaticamente uma versão bloqueada no seu Gemfile.lock. Por exemplo, se o seu Gemfile.lock tiver o seguinte:

RUBY VERSION
  ruby 3.0.3p0

Os buildpacks usam automaticamente o Ruby 3.0.3, com o nível de patch mais recente.

A usar GOOGLE_RUNTIME_VERSION

Se não estiver a usar o bundler, pode especificar uma versão do Ruby através da variável de ambiente da seguinte forma:

pack build --builder=gcr.io/buildpacks/builder \
   sample-ruby \
   --env GOOGLE_RUNTIME_VERSION=3.0.3

Também pode usar um descritor de projeto project.toml para codificar a variável de ambiente juntamente com os ficheiros do projeto. Veja instruções sobre como criar a aplicação com variáveis de ambiente.

Se estiver a usar o bundler,não é possível usar GOOGLE_RUNTIME_VERSION para substituir a versão especificada em Gemfile.lock em RUBY VERSION.

Instalar dependências

Usar o Bundler

  • O Bundler é o gestor de pacotes predefinido
  • Confirme Gemfile.lock no seu repositório, uma vez que usamos o ficheiro de bloqueio para criar a app
  • Por predefinição, apenas são instaladas dependências de produção

Versão do agrupador

O Bundler tem problemas de compatibilidade conhecidos. Se a sua aplicação usar o bundler, devido a vários problemas de compatibilidade com o Ruby e o Rubygems, atualizamos o Gemfile.lock na app criada para usar uma das duas versões suportadas. Todas as aplicações que usam o agrupador 1.* e 2.* no BUNDLED WITH são normalizadas para usar o agrupador 1.17.3 e 2.3.15.

Especificar um ponto de entrada

Usar o Procfile

Pode especificar um ponto de entrada, um comando que é executado quando o contentor é iniciado, através do Procfile. Por exemplo, com o seguinte no Procfile na raiz da sua app:

web: ruby main.rb

O buildpack do Ruby usa o comando ruby main.rb como ponto de entrada do contentor criado. Por predefinição, é usado o destino web do Procfile.

Para usar um ponto de entrada diferente, pode especificar um destino diferente do seu Procfile como argumento.

Com um Procfile que contenha o seguinte: web: ruby main.rb custom: ruby custom.rb

Pode usar o destino Procfile personalizado transmitindo-o como um argumento: bash pack build --builder=gcr.io/buildpacks/builder \ sample-ruby \ --entrypoint=custom

A usar GOOGLE_ENTRYPOINT

Se não estiver a usar um Procfile ou quiser substituir o Procfile, pode especificar um ponto de entrada usando a variável de ambiente GOOGLE_ENTRYPOINT. Segue-se um exemplo:

pack build --builder=gcr.io/buildpacks/builder \
   sample-ruby \
   --env GOOGLE_ENTRYPOINT="ruby custom.rb"

Variáveis de ambiente

O buildpack do Ruby suporta as seguintes variáveis de ambiente para personalizar o seu contentor

BUNDLE_

Consulte a bundler documentação.

Exemplo: BUNDLE_TIMEOUT=60 define --timeout=60 para comandos bundle.