作爲Heroku新手,我在Heroku中部署簡單的基於Sinatra的應用程序時遇到了很多麻煩。我已經遵循了所有步驟,並且應用程序也已部署。我已經按照這裏給出的說明:在Heroku上部署Sinatra應用程序給出錯誤
https://blog.heroku.com/archives/2009/3/5/32_deploy_merb_sinatra_or_any_rack_app_to_heroku
我config.ru是文件如下:
require './sinatratest.rb'
run Sinatra::Application
我的Gemfile是
source 'https://rubygems.org'
gem 'sinatra'
Sinatratest.rb是如下:
require 'sinatra'
require './test.rb'
get '/' do
result = FooRunner.run!
File.open('output.json','w') do |f|
f.write result
end
content_type :text
result
end
而且test.rb包括以下寶石:
require 'rubygems'
require 'nokogiri'
require 'open-uri'
require 'date'
require 'json'
我的直覺告訴我,我應該被包括在Gemfile中所有的寶石,但是當我做我的Gemfile看起來像這樣,
source 'https://rubygems.org'
gem 'sinatra'
gem 'open-uri'
gem 'nokogiri'
gem 'json'
gem 'date'
當我運行bundle install
,它給了我下面的錯誤:
$ bundle install
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Could not find gem 'date (>= 0) x86-mingw32' in the gems available on this
machine.
的代碼的其餘部分是該方案的主要計算,所以我還沒有includ在這裏編輯他們。
當我在localhost:4567上運行文件時,程序運行完美。
在在Heroku上運行的應用程序,我得到(如果它是相當廣泛的,不知道是重要的)在日誌文件中的以下錯誤:
$ heroku logs -t -a young-dusk-4185
←[36m2014-01-20T13:16:18.123135+00:00 heroku[api]:←[0m Enable Logplex by siddhar
[email protected]
←[36m2014-01-20T13:16:18.186772+00:00 heroku[api]:←[0m Release v2 created by sid
[email protected]
←[33m2014-01-20T13:16:34+00:00 heroku[slug-compiler]:←[0m Slug compilation start
ed
←[33m2014-01-20T13:18:50+00:00 heroku[slug-compiler]:←[0m Slug compilation start
ed
←[36m2014-01-20T13:19:05.690086+00:00 heroku[api]:←[0m Scale to web=1 by siddhar
[email protected]
←[36m2014-01-20T13:19:05.758285+00:00 heroku[api]:←[0m Deploy 12b370f by siddhar
[email protected]
←[36m2014-01-20T13:19:05.814824+00:00 heroku[api]:←[0m Release v3 created by sid
[email protected]
←[33m2014-01-20T13:19:06+00:00 heroku[slug-compiler]:←[0m Slug compilation finis
hed
←[32m2014-01-20T13:19:08.957680+00:00 heroku[web.1]:←[0m Starting process with c
ommand bundle exec rackup config.ru -p 34125←[32m2014-01-20T13:19:11.064788+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:55:in initialize'
←[32m2014-01-20T13:19:11.064788+00:00 app[web.1]:←[0m from /app/config.ru:innew'
←[32m2014-01-20T13:19:11.064788+00:00 app[web.1]:←[0m from /app/config.ru:in <main>'
←[32m2014-01-20T13:19:11.065003+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:49:ineval'
←[32m2014-01-20T13:19:11.065003+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:49:in new_from_string'
←[32m2014-01-20T13:19:11.065003+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:40:inparse_file'
←[32m2014-01-20T13:19:11.065003+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/server.rb:277:in build_app_and_options_from
_config'
←[32m2014-01-20T13:19:11.065003+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/server.rb:314:inwrapped_app'
←[32m2014-01-20T13:19:11.065003+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/server.rb:250:in start'
←[32m2014-01-20T13:19:11.065003+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/server.rb:141:instart'
←[32m2014-01-20T13:19:11.065003+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/bin/rackup:4:in <top (required)>'
←[32m2014-01-20T13:19:11.065003+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/bin/rackup:23:inload'
←[32m2014-01-20T13:19:11.065193+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/bin/rackup:23:in <main>'
←[32m2014-01-20T13:19:11.064788+00:00 app[web.1]:←[0m /app/test.rb:2:inrequire
': cannot load such file -- nokogiri (LoadError)
←[32m2014-01-20T13:19:11.064788+00:00 app[web.1]:←[0m from /app/sinatratest.rb
:2:in require'
←[32m2014-01-20T13:19:11.064788+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:55:ininstance_eval'
←[32m2014-01-20T13:19:11.064788+00:00 app[web.1]:←[0m from /app/config.ru:1:in
block in <main>'
←[32m2014-01-20T13:19:11.064788+00:00 app[web.1]:←[0m from /app/test.rb:2:in'
←[32m2014-01-20T13:19:11.064788+00:00 app[web.1]:←[0m from /app/config.ru:1:in
require'
←[32m2014-01-20T13:19:11.064788+00:00 app[web.1]:←[0m from /app/sinatratest.rb
:2:in'
←[32m2014-01-20T13:19:11.065003+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/server.rb:199:in app'
←[32m2014-01-20T13:19:12.370360+00:00 heroku[web.1]:←[0m Process exited with sta
tus 1
←[32m2014-01-20T13:19:12.381229+00:00 heroku[web.1]:←[0m State changed from cras
hed to starting
←[32m2014-01-20T13:19:12.380342+00:00 heroku[web.1]:←[0m State changed from star
ting to crashed
←[32m2014-01-20T13:19:14.369032+00:00 heroku[web.1]:←[0m Starting process with c
ommandbundle exec rackup config.ru -p 4039←[32m2014-01-20T13:19:15.709187+00:00 app[web.1]:←[0m from /app/test.rb:2:in'
←[32m2014-01-20T13:19:15.709187+00:00 app[web.1]:←[0m from /app/sinatratest.rb
:2:in require'
←[32m2014-01-20T13:19:15.709187+00:00 app[web.1]:←[0m from /app/sinatratest.rb
:2:in'
←[32m2014-01-20T13:19:15.709187+00:00 app[web.1]:←[0m from /app/config.ru:1:in
block in <main>'
←[32m2014-01-20T13:19:15.709187+00:00 app[web.1]:←[0m /app/test.rb:2:inrequire
': cannot load such file -- nokogiri (LoadError)
←[32m2014-01-20T13:19:15.709187+00:00 app[web.1]:←[0m from /app/config.ru:1:in
require'
←[32m2014-01-20T13:19:15.709187+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:55:ininstance_eval'
←[32m2014-01-20T13:19:15.709387+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:49:in new_from_string'
←[32m2014-01-20T13:19:15.709187+00:00 app[web.1]:←[0m from /app/config.ru:innew'
←[32m2014-01-20T13:19:15.709387+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:40:in parse_file'
←[32m2014-01-20T13:19:15.709387+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/bin/rackup:23:inload'
←[32m2014-01-20T13:19:15.709387+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/server.rb:199:in app'
←[32m2014-01-20T13:19:15.709387+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/bin/rackup:4:in'
←[32m2014-01-20T13:19:15.709187+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:55:in initialize'
←[32m2014-01-20T13:19:15.709387+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:49:ineval'
←[32m2014-01-20T13:19:15.709387+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/server.rb:277:in build_app_and_options_from
_config'
←[32m2014-01-20T13:19:15.709187+00:00 app[web.1]:←[0m from /app/config.ru:in'
←[32m2014-01-20T13:19:15.709387+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/server.rb:250:in start'
←[32m2014-01-20T13:19:15.709387+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/server.rb:141:instart'
←[32m2014-01-20T13:19:15.709387+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/gems/rack-1.5.2/lib/rack/server.rb:314:in wrapped_app'
←[32m2014-01-20T13:19:15.709549+00:00 app[web.1]:←[0m from /app/vendor/bundle/
ruby/2.0.0/bin/rackup:23:in'
←[32m2014-01-20T13:19:16.879149+00:00 heroku[web.1]:←[0m Process exited with sta
tus 1
←[32m2014-01-20T13:19:16.890707+00:00 heroku[web.1]:←[0m State changed from star
ting to crashed
←[35m2014-01-20T13:21:08.466196+00:00 heroku[router]:←[0m at=error code=H10 desc
="App crashed" method=GET path=/ host=young-dusk-4185.herokuapp.com request_id=1
ef27ceb-7ee2-47f4-9fb7-cbdcc8fab61c fwd="122.170.61.59" dyno= connect= service=
status=503 bytes=
←[35m2014-01-20T13:21:10.429453+00:00 heroku[router]:←[0m at=error code=H10 desc
="App crashed" method=GET path=/favicon.ico host=young-dusk-4185.herokuapp.com r
equest_id=5897225e-2ef0-4d79-a779-d025e4631b9e fwd="122.170.61.59" dyno= connect
= service= status=503 bytes=
←[35m2014-01-20T13:21:33.653423+00:00 heroku[router]:←[0m at=error code=H10 desc
="App crashed" method=GET path=/favicon.ico host=young-dusk-4185.herokuapp.com r
equest_id=7d0ebe05-3c61-40a5-b68b-8e65aa16ecee fwd="122.170.61.59" dyno= connect
= service= status=503 bytes=
←[35m2014-01-20T13:21:31.920663+00:00 heroku[router]:←[0m at=error code=H10 desc
="App crashed" method=GET path=/ host=young-dusk-4185.herokuapp.com request_id=9
d1cfd4c-df22-40f1-bf62-666794740d89 fwd="122.170.61.59" dyno= connect= service=
status=503 bytes=
←[35m2014-01-20T13:22:12.512932+00:00 heroku[router]:←[0m at=error code=H10 desc
="App crashed" method=GET path=/ host=young-dusk-4185.herokuapp.com request_id=b
c1c445c-c585-49bd-b1f9-a417a8f92b91 fwd="122.170.61.59" dyno= connect= service=
status=503 bytes=
←[35m2014-01-20T13:22:14.459868+00:00 heroku[router]:←[0m at=error code=H10 desc
="App crashed" method=GET path=/favicon.ico host=young-dusk-4185.herokuapp.com r
equest_id=a88c2ad8-1f4f-4010-b485-32456819e054 fwd="122.170.61.59" dyno= connect
= service= status=503 bytes=
←[35m2014-01-20T13:24:10.209495+00:00 heroku[router]:←[0m at=error code=H10 desc
="App crashed" method=GET path=/ host=young-dusk-4185.herokuapp.com request_id=3
24a985d-12e3-41a4-bd8a-02dc32f59332 fwd="122.170.61.59" dyno= connect= service=
status=503 bytes=
←[35m2014-01-20T13:24:11.917667+00:00 heroku[router]:←[0m at=error code=H10 desc
="App crashed" method=GET path=/favicon.ico host=young-dusk-4185.herokuapp.com r
equest_id=d940ebe5-4194-415b-96d8-6d7deba77b25 fwd="122.170.61.59" dyno= connect
= service= status=503 bytes=
←[33m2014-01-20T13:31:35+00:00 herokulink_ref,[object Object],slug-compiler:←[0m Slug compilation timed
out: 900.760266585 seconds.
您可以訪問這裏的應用:http://young-dusk-4185.herokuapp.com/
我究竟做錯了什麼?
你不需要'gem'date''這是在標準庫中 –
@ Sirl33tname我會刪除那個,但那不影響我的程序嗎?因爲它仍然可以在本地服務器上正常運行。 – Newtt
不是直接,但現在heroku可以安裝你的寶石,你忘了添加一個Procfile –