2011-12-01 12 views
8

पर sinatra ऐप (config.ru के साथ) को तैनात करना मैं this response से कुछ सुझावों का उपयोग करके अपनी मुख्य फ़ाइल को अलग फ़ाइलों में अलग करने के लिए अपने साइनरा कोड को दोबारा बदलने की कोशिश कर रहा हूं, और मुझे उसकेोकू में तैनाती में परेशानी हो रही है।हेनोकू सीडर स्टैक

इससे पहले मैं एक config.ru फ़ाइल नहीं था, और सिर्फ मेरी Procfile इस्तेमाल किया है, जो था:

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

रूप this article प्रति।

refactor से, अब मैं अपने 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 

यह मेरे स्थानीय विकास पर काम करता है एंट कंप्यूटर, लेकिन जब मैं उसकेोकू में तैनात करता हूं, तो मुझे

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

मुझे अपना Procfile अपडेट करना पड़ा क्योंकि RACK_ENV उसकेोकू पर्यावरण में पारित नहीं हुआ है। Procfile बने:

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

ठीक है, तो मैं सिनात्रा :: बजाय आवेदन बिल्कुल MyApp.new उपयोग करने के लिए config.ru को बदलने की जरूरत नहीं किया। उत्तर से इसे हटा रहा है। – zlog