新しい Rails 4 ベータ アプリを作成し、Heroku にデプロイしました (Ruby 2.0.0 と Procfile 経由の Unicorn を使用)。
ローカルでは問題なく動作しますforeman start
が、デプロイされたアプリのホームページにアクセスすると、標準の Heroku 500 エラーが表示されます。
We're sorry, but something went wrong.
If you are the application owner check the logs for more information.
ただし、ログにはエラーはありません。500の原因がわかりません。
これが私の最後の出力ですgit push heroku master
:
Counting objects: 6, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 656 bytes, done.
Total 4 (delta 2), reused 0 (delta 0)
-----> Ruby/Rails app detected
-----> Using Ruby version: ruby-2.0.0
-----> Installing dependencies using Bundler version 1.3.2
Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment
Using rake (10.0.4)
Using i18n (0.6.4)
Using minitest (4.7.3)
Using multi_json (1.7.2)
Using atomic (1.1.8)
Using thread_safe (0.1.0)
Using tzinfo (0.3.37)
Using activesupport (4.0.0.beta1)
Using builder (3.1.4)
Using erubis (2.7.0)
Using rack (1.5.2)
Using rack-test (0.6.2)
Using actionpack (4.0.0.beta1)
Using mime-types (1.23)
Using polyglot (0.3.3)
Using treetop (1.4.12)
Using mail (2.5.3)
Using actionmailer (4.0.0.beta1)
Using activemodel (4.0.0.beta1)
Using activerecord-deprecated_finders (0.0.3)
Using arel (4.0.0)
Using activerecord (4.0.0.beta1)
Using coffee-script-source (1.6.2)
Using execjs (1.4.0)
Using coffee-script (2.2.0)
Using json (1.7.7)
Using rdoc (3.12.2)
Using thor (0.18.1)
Using railties (4.0.0.beta1)
Using coffee-rails (4.0.0)
Using hike (1.2.2)
Using jbuilder (1.0.2)
Using jquery-rails (2.2.1)
Using kgio (2.8.0)
Using mysql2 (0.3.11)
Using bundler (1.3.2)
Using tilt (1.3.7)
Using sprockets (2.9.3)
Using sprockets-rails (2.0.0.rc4)
Using rails (4.0.0.beta1)
Using raindrops (0.11.0)
Using sass (3.2.8)
Using sass-rails (4.0.0.rc1)
Using turbolinks (1.1.1)
Using uglifier (2.0.1)
Using unicorn (4.6.2)
Your bundle is complete! It was installed into ./vendor/bundle
Cleaning up the bundler cache.
-----> Preparing app for Rails asset pipeline
Running: rake assets:precompile
I, [2013-04-23T22:28:44.559735 #871] INFO -- : Writing /tmp/build_33m76p0rij8a5/public/assets/rails-d8fb6a2617998f32edf5edb354fc5326.png
I, [2013-04-23T22:28:49.911890 #871] INFO -- : Writing /tmp/build_33m76p0rij8a5/public/assets/application-d4a508061cd56ce9e544945495285e0c.js
I, [2013-04-23T22:28:50.120141 #871] INFO -- : Writing /tmp/build_33m76p0rij8a5/public/assets/application-a3b89b66a8471f3e75abb239e3b35c7d.css
Asset precompilation completed (8.30s)
-----> Rails plugin injection
-----> Discovering process types
Procfile declares types -> web
Default types for Ruby/Rails -> console, rake, worker
-----> Compiled slug size: 35.0MB
-----> Launching... done, v21
http://blofs.herokuapp.com deployed to Heroku
To git@heroku.com:blofs.git
32e51a2..37d989c master -> master
そして、そのプッシュからのログは次のとおりです。
2013-04-23T22:28:06.650049+00:00 heroku[slugc]: Slug compilation started
2013-04-23T22:29:11.194613+00:00 heroku[api]: Release v21 created by callum.locke@gmail.com
2013-04-23T22:29:11.365908+00:00 heroku[api]: Deploy 37d989c by callum.locke@gmail.com
2013-04-23T22:29:11.441066+00:00 heroku[web.1]: State changed from up to starting
2013-04-23T22:29:11.932952+00:00 heroku[slugc]: Slug compilation finished
2013-04-23T22:29:12.858139+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2013-04-23T22:29:13.194707+00:00 app[web.1]: I, [2013-04-23T22:29:13.194495 #2] INFO -- : reaped #<Process::Status: pid 5 exit 0> worker=0
2013-04-23T22:29:13.194902+00:00 app[web.1]: I, [2013-04-23T22:29:13.194747 #2] INFO -- : master complete
2013-04-23T22:29:14.312014+00:00 heroku[web.1]: Process exited with status 0
2013-04-23T22:29:14.338943+00:00 heroku[web.1]: Starting process with command `bundle exec unicorn -p 25281 -E $RACK_ENV`
2013-04-23T22:29:15.717687+00:00 app[web.1]: I, [2013-04-23T22:29:15.717387 #2] INFO -- : listening on addr=0.0.0.0:25281 fd=7
2013-04-23T22:29:15.717916+00:00 app[web.1]: I, [2013-04-23T22:29:15.717861 #2] INFO -- : worker=0 spawning...
2013-04-23T22:29:15.721526+00:00 app[web.1]: I, [2013-04-23T22:29:15.721385 #2] INFO -- : master process ready
2013-04-23T22:29:15.723623+00:00 app[web.1]: I, [2013-04-23T22:29:15.723389 #5] INFO -- : worker=0 spawned pid=5
2013-04-23T22:29:15.723805+00:00 app[web.1]: I, [2013-04-23T22:29:15.723750 #5] INFO -- : Refreshing Gem list
2013-04-23T22:29:16.305653+00:00 heroku[web.1]: State changed from starting to up
2013-04-23T22:29:16.891063+00:00 app[web.1]: I, [2013-04-23T22:29:16.890882 #5] INFO -- : worker=0 ready
その後、ブラウザでホームページを読み込もうとしましたが、ログに表示されたのは次の 2 行だけです。
2013-04-23T22:29:26.685651+00:00 heroku[router]: at=info method=GET path=/ host=blofs.herokuapp.com fwd="46.65.16.44" dyno=web.1 connect=2ms service=156ms status=500 bytes=706
2013-04-23T22:29:26.973073+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=blofs.herokuapp.com fwd="46.65.16.44" dyno=web.1 connect=1ms service=5ms status=200 bytes=0
何が問題なのか誰にもわかりませんか?
関連するその他の事項:
- 標準の Heroku Postgres アドオンを無効にし、代わりに ClearDB MySQL アドオンを使用しています。
- 環境変数を以前の値(postgresアドオンを削除した後でもpostgres URLでした)からvar(mysqlのもの)
DATABASE_URL
と同じ値に手動で変更しようとしました。CLEARDB_DATABASE_URL
これは違いがないように見えました。 ruby '2.0.0'
Gemfile に追加しmysql2
、 gem を追加しましunicorn
た。そして、 https://devcenter.heroku.com/articles/rails-unicornconfig/unicorn.rb
で提案されているものを使用しました- マイ プロファイルには以下のみが含まれます。
web: bundle exec unicorn -p $PORT -E $RACK_ENV
- ローカルで正常に動作し
foreman start
ます。 - 上記の変更以外は、基本的に で作成されたすぐに使えるアプリです
rails new
。