2011-12-01 20 views
8

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?

Respuesta

9

Tuve que actualizar mi Procfile porque el RACK_ENV no se pasa al entorno heroku. El Procfile se convirtió en:

web: bundle exec thin -R config.ru start -p $PORT -e $RACK_ENV 
+0

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

Cuestiones relacionadas