Ruby
Se detecta por un Gemfile. Bundler instala las gems sin los grupos development y test.
Guías de despliegue paso a paso: Ruby, Ruby on Rails.
Consulta Buildpackspara ver cómo funcionan la detección y la política de versiones. Si el proyecto también tiene package.json, recibe Node.jsen la misma build (Rails con un pipeline de JS).
Detección
Gemfile en el directorio base.
Versiones
La versión por defecto es Ruby 3.4. Ramas publicadas a septiembre de 2026: 3.3, 3.4, 4.0. Recibes el último parche de la versión minor solicitada.
Para fijar la versión, por este orden:
.ruby-version(se elimina un prefijoruby-)- Una línea
ruby "3.4.10"en el Gemfile (x.y.zcompleto)
La versión de Bundler se obtiene de la sección BUNDLED WITH de Gemfile.lock. Si no está, el builder usa su versión fijada: Bundler 2 para Ruby 3, Bundler 4 para Ruby 4.
Instalación y build
bundle install con BUNDLE_WITHOUT=development:test, en modo deployment si existe un Gemfile.lock (sin lockfile, Bundler resuelve las gems durante la build). Las apps Rails (config/environment.rb) ejecutan rake assets:precompile si esa tarea existe. La precompilación usa RAILS_ENV=production y SECRET_KEY_BASE_DUMMY=1.
Al arrancar, RAILS_ENV y RACK_ENV usan el valor production, los logs se envían a stdout y se define RAILS_SERVE_STATIC_FILES=enabled.
Comando de inicio
config/puma.rb:bundle exec puma -C config/puma.rbconfig.ru:bundle exec rackup config.ru -p $PORT(5000 siPORTno está definida)- En otro caso:
bundle exec ruby app.rb
Haz que Puma o Rack escuchen en PORT. Puedes sobrescribirlo con un Procfile.