Ruby
Detetado através de um Gemfile. O Bundler instala as gems sem os grupos development e test.
Guias de deploy passo a passo: Ruby, Ruby on Rails.
Consulte Buildpackspara ver como funcionam a deteção e a política de versões. Um projeto que também tenha package.json recebe Node.jsno mesmo build (Rails com um pipeline JS).
Deteção
Gemfile no Base directory.
Versões
A versão por omissão é o Ruby 3.4. Versões publicadas à data de setembro de 2026: 3.3, 3.4, 4.0. Recebe o patch mais recente da versão minor pedida.
Para fixar a versão, por esta ordem:
.ruby-version(um prefixoruby-é removido)- Uma linha
ruby "3.4.10"no Gemfile (x.y.zcompleto)
O Bundler vem da secção BUNDLED WITH de Gemfile.lock. Sem essa secção, o builder usa a versão fixada: Bundler 2 para Ruby 3, Bundler 4 para Ruby 4.
Instalação e build
bundle install com BUNDLE_WITHOUT=development:test, em modo deployment quando existe um Gemfile.lock (sem lockfile, o Bundler resolve as gems durante o build). As aplicações Rails (config/environment.rb) executam rake assets:precompile quando essa tarefa existe. A pré-compilação usa RAILS_ENV=production e SECRET_KEY_BASE_DUMMY=1.
No arranque, por omissão, RAILS_ENV e RACK_ENV têm o valor production, os logs vão para stdout e RAILS_SERVE_STATIC_FILES=enabled é definido.
Comando de arranque
config/puma.rb:bundle exec puma -C config/puma.rbconfig.ru:bundle exec rackup config.ru -p $PORT(5000 sePORTnão estiver definida)- Caso contrário:
bundle exec ruby app.rb
Ponha o Puma ou o Rack a escutar em PORT. Pode substituir o comando com um Procfile.