2011-12-01 8 views
8

私のsinatraコードをリファクタリングして、メインファイルを別のファイルに分割しようとしています(this responseのヒントを使用しています)、私はherokuに展開する際に問題があります。 heroku cedar stackにsinatra appを配備する

があった、以前私が config.ruファイルを持っていなかった、と私の Procfile使用:

web: bundle exec ruby web.rb -p $PORT 

this articleあたりとして。リファクタリングから

は、私は今、私のconfig.ruファイルが

root = ::File.dirname(__FILE__) 
require ::File.join(root, 'web') 
run MyApp.new 

そして、クラス定義

class MyApp < Sinatra::Application 
    # ... 
end 
の周りに収容されている私の web.rbファイルされた状態で

web: bundle exec thin -R config.ru start -p $PORT 

に私のProcfileを変更しました

これは私のローカル開発で動作します私が英雄に配備するときは、

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= 

英雄には薄いがインストールされていませんか?それとも、私のアプリを英雄に変えて実行する方法がありますか?

答えて

9

RACK_ENVがheroku環境に渡されないため、Procfileを更新する必要がありました。

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

[OK]を、ので、私はシナトラ::アプリケーションの代わりに、MyApp.newですべてを使用するconfig.ruを変更する必要はありませんでした:Procfileとなりました。答えから削除する。 – zlog

関連する問題