Estoy tratando de refactorizar mi código sinatra para separar mi archivo principal en archivos separados, usando algunos consejos del this response, y tengo problemas para desplegarlo en heroku.Implementando la aplicación sinatra (con config.ru) en la pila de cedro heroku
Anteriormente yo no tenía un archivo config.ru
, y acaba de utilizar mi Procfile
, que era:
web: bundle exec ruby web.rb -p $PORT
según this article.
Desde el refactor, ahora he cambiado de Procfile
a
web: bundle exec thin -R config.ru start -p $PORT
con ser mi archivo config.ru
root = ::File.dirname(__FILE__)
require ::File.join(root, 'web')
run MyApp.new
Y mi archivo web.rb
estando contenido en torno a una definición de clase
class MyApp < Sinatra::Application
# ...
end
Esto funciona en mi desarrollo local ent computadora, pero cuando implemente en heroku, obtengo
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=
¿No está delgada instalada en heroku? ¿O hay alguna otra forma de ejecutar mi aplicación en heroku con los cambios?
Ok, por lo que no necesitaba cambiar config.ru utilizar Sinatra :: Application en lugar de MyApp.new en absoluto. Quitándolo de la respuesta. – zlog