Ruby
Erkannt über ein Gemfile. Bundler installiert Gems ohne Development- und Test-Gruppen.
Schritt-für-Schritt-Guides: Ruby, Ruby on Rails.
Siehe Buildpacksfür Detection und Versionspolitik. Ein Tree, der auch package.json hat, bekommt Node.jsim selben Build (Rails mit JS-Pipeline).
Erkennt
Gemfile im Base directory.
Versionen
Default ist Ruby 3.4. Veröffentlichte Lines Stand September 2026: 3.3, 3.4, 4.0. Du bekommst den neuesten Patch der angefragten Minor.
Pinnen, in dieser Reihenfolge:
.ruby-version(ein Prefixruby-wird entfernt)- eine Zeile
ruby "3.4.10"im Gemfile (vollesx.y.z)
Bundler kommt aus der Stanza BUNDLED WITH in Gemfile.lock. Fehlt sie, nimmt der Builder seine feste Version: Bundler 2 für Ruby 3, Bundler 4 für Ruby 4.
Install und Build
bundle install mit BUNDLE_WITHOUT=development:test, im Deployment-Modus, wenn ein Gemfile.lock existiert (ohne Lockfile löst Bundler die Gems beim Build auf). Rails-Apps (config/environment.rb) führen rake assets:precompile aus, wenn dieser Task existiert. Das Precompile nutzt RAILS_ENV=production und SECRET_KEY_BASE_DUMMY=1.
Launch-Defaults setzen RAILS_ENV und RACK_ENV auf production, Logs auf stdout und RAILS_SERVE_STATIC_FILES=enabled.
Start-Command
config/puma.rb:bundle exec puma -C config/puma.rbconfig.ru:bundle exec rackup config.ru -p $PORT(5000 wennPORTfehlt)- sonst:
bundle exec ruby app.rb
Puma oder Rack auf PORT lauschen lassen. Mit einer Procfile überschreiben.