Я пытаюсь реорганизовать свой код sinatra, чтобы разделить мой основной файл на отдельные файлы, используя некоторые советы из этого ответа , и я проблемы с развертыванием на героку.
Раньше у меня не было файла config.ru
, и я просто использовал свой Procfile
, который был:
web: bundle exec ruby web.rb -p $PORT
согласно этой статье .
После рефакторинга я изменил свой Procfile
на
web: bundle exec thin -R config.ru start -p $PORT
, при этом мой файл config.ru
был
root = ::File.dirname(__FILE__)
require ::File.join( root, 'web' )
run MyApp.new
, а мой web.rb
], содержащийся вокруг определения класса
class MyApp < Sinatra::Application
# ...
end
Это работает на моем локальном компьютере разработчика, но когда я развертываю на heroku, я получаю
2011-12-01T11:21:54+00:00 app[web.1]: bundler: command not found: thin
2011-12-01T11:21:54+00:00 app[web.1]: Install missing gem executables with `bundle install`
2011-12-01T11:21:56+00:00 heroku[web.1]: State changed from starting to crashed
2011-12-01T11:22:01+00:00 heroku[router]: Error H10 (App crashed) -> GET [my app].herokuapp.com/ dyno= queue= wait= service= status=503 bytes=
2011-12-01T11:22:02+00:00 heroku[router]: Error H10 (App crashed) -> GET [my app].herokuapp.com/favicon.ico dyno= queue= wait= service= status=503 bytes=
Is thin не установлен на heroku? Или есть другой способ запустить мое приложение на heroku с изменениями?