Como criar um aplicativo em Ruby

Como especificar versões do Ruby

O projeto de buildpacks fornece suporte para as versões LTS atuais e ativas do Ruby. As versões mais antigas do Ruby estão disponíveis, mas podem não ser mantidas ativamente pelo projeto.

Como usar o Gemfile.lock

Se o aplicativo usar o Bundler, o Gemfile.lock precisará estar na raiz do seu repositório. Os buildpacks do Ruby usarão automaticamente uma versão bloqueada no Gemfile.lock. Por exemplo, se o Gemfile.lock tiver isto:

RUBY VERSION
  ruby 3.0.3p0

Os buildpacks usarão automaticamente o Ruby 3.0.3, com o nível do patch mais recente.

Como usar o GOOGLE_RUNTIME_VERSION

Se você não estiver usando o Bundler, será possível especificar uma versão do Ruby usando a variável de ambiente desta maneira:

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

Também é possível usar um descritor de projeto project.toml para codificar a variável de ambiente com os arquivos do projeto. Veja instruções sobre como criar o aplicativo com variáveis de ambiente.

Se você estiver usando o Bundler, a GOOGLE_RUNTIME_VERSION não poderá ser usada para substituir a versão especificada no Gemfile.lock na RUBY VERSION.

Como instalar dependências

Como usar o Bundler

  • Bundler é o gerenciador de pacotes padrão
  • Confirme o Gemfile.lock no seu repositório, já que usamos o arquivo de bloqueio para criar o app.
  • Por padrão, apenas as dependências de produção são instaladas.

Versão do Bundler

O Bundler tem problemas de compatibilidade conhecidos. Devido a vários problemas de compatibilidade com o Ruby e o RubyGems, se o aplicativo usar o Bundler, atualizaremos o Gemfile.lock no app criado para que use uma das duas versões compatíveis. Todos os aplicativos que usam o Bundler 1.* e 2.* em BUNDLED WITH são normalizados para usar o Bundler 1.17.3 e 2.3.15.

Como especificar um ponto de entrada

Como usar o Procfile

Usando o Procfile, é possível especificar um ponto de entrada, um comando executado quando o contêiner é iniciado. Por exemplo, o comando a seguir no arquivo do Procfile na raiz do seu app:

web: ruby main.rb

O buildpack do Ruby usará o comando ruby main.rb como o ponto de entrada do contêiner criado. Por padrão, é usado o destino web no Procfile.

Para usar um ponto de entrada diferente, especifique outro destino como argumento no Procfile.

Com um Procfile contendo este comando: web: ruby main.rb custom: ruby custom.rb

É possível usar o destino personalizado do Procfile transmitindo-o como argumento: bash pack build --builder=gcr.io/buildpacks/builder \ sample-ruby \ --entrypoint=custom

Como usar o GOOGLE_ENTRYPOINT

Se você não estiver usando um Procfile ou quiser substituir o Procfile, especifique um ponto de entrada usando a variável de ambiente GOOGLE_ENTRYPOINT. Veja 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 é compatível com as variáveis de ambiente a seguir para personalizar o contêiner.

BUNDLE_

Consulte a documentação do bundler.

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