幸ログ

ナレッジを溜めていきます

ruby on railsでherokuにデプロイする時に引っかかったこと

Ruby on Rails Tutorialを参考にherokuにPushするところまでやってみました。 状況は確認したらクラッシュしていました。

$ heroku ps
=== web (Free): bin/rails server -p $PORT -e $RAILS_ENV                                              │Started GET "/" for ::1 at 2015-11-18 13:26:18 +0900
web.1: crashed 2015/11/18 13:32:27 (~ 1m ago)

理由を探すためにlogを確認してみたところ、 springがインストールされていないという内容でした。

チュートリアルにあるGemfileの通りだけど、 herokuにPushしたときはインストールされていなかったです。

source 'https://rubygems.org'
ruby '2.2.1'

gem 'rails',                '4.2.4'
gem 'sass-rails',           '5.0.2'
gem 'uglifier',             '2.5.3'
gem 'coffee-rails',         '4.1.0'
gem 'jquery-rails',         '4.0.3'
gem 'turbolinks',           '2.3.0'
gem 'jbuilder',             '2.2.3'
gem 'sdoc',                 '0.4.0', group: :doc

group :development, :test do
  gem 'sqlite3',     '1.3.9'
  gem 'byebug',      '3.4.0'
  gem 'web-console', '2.0.0.beta3'
  gem 'spring',      '1.1.3'
end
group :production do
  gem 'pg',             '0.17.1'
  gem 'rails_12factor', '0.0.2'
end
$ heroku run gem list
Running gem list on damp-inlet-8048... up, run.5374

*** LOCAL GEMS ***

actionmailer (4.2.4)
actionpack (4.2.4)
actionview (4.2.4)
activejob (4.2.4)
activemodel (4.2.4)
activerecord (4.2.4)
activesupport (4.2.4)
arel (6.0.3)
bigdecimal (1.2.6)
builder (3.2.2)
bundler (1.9.7)
coffee-rails (4.1.0)
coffee-script (2.4.1)
coffee-script-source (1.10.0)
erubis (2.7.0)
execjs (2.6.0)
globalid (0.3.6)
i18n (0.7.0)
io-console (0.4.3)
jbuilder (2.2.3)
jquery-rails (4.0.3)
json (1.8.3, 1.8.1)
loofah (2.0.3)
mail (2.6.3)
mime-types (2.6.2)
mini_portile (0.6.2)
minitest (5.8.3, 5.4.3)
multi_json (1.11.2)
nokogiri (1.6.6.3)
pg (0.17.1)
power_assert (0.2.2)
psych (2.0.8)
rack (1.6.4)
rack-test (0.6.3)
rails (4.2.4)
rails-deprecated_sanitizer (1.0.3)
rails-dom-testing (1.0.7)
rails-html-sanitizer (1.0.2)
rails_12factor (0.0.2)
rails_serve_static_assets (0.0.4)
rails_stdout_logging (0.0.4)
railties (4.2.4)
rake (10.4.2)
rdoc (4.2.0)
sass (3.4.19)
sass-rails (5.0.2)
sdoc (0.4.0)
sprockets (3.4.0)
sprockets-rails (2.3.3)
test-unit (3.0.8)
thor (0.19.1)
thread_safe (0.3.5)
tilt (1.4.1)
turbolinks (2.3.0)
tzinfo (1.2.2)
uglifier (2.5.3)

解決というかその場凌ぎの方法でherokuでデプロイできるようにしました。 Gemfileのspritの位置を変更して、 bundleでGemfile.lockを更新します。 そしてCommitして、herokuにPushするとちゃんと動きました。

source 'https://rubygems.org'
ruby '2.2.1'

gem 'rails',                '4.2.4'
gem 'sass-rails',           '5.0.2'
gem 'uglifier',             '2.5.3'
gem 'coffee-rails',         '4.1.0'
gem 'jquery-rails',         '4.0.3'
gem 'turbolinks',           '2.3.0'
gem 'jbuilder',             '2.2.3'
gem 'sdoc',                 '0.4.0', group: :doc
gem 'spring',      '1.1.3'

group :development, :test do
  gem 'sqlite3',     '1.3.9'
  gem 'byebug',      '3.4.0'
  gem 'web-console', '2.0.0.beta3'
end
group :production do
  gem 'pg',             '0.17.1'
  gem 'rails_12factor', '0.0.2'
end
$ bundle install --without producation
$ git add Gemfile Gemfile.lock
$ git commit -am "hogehoge"
$ git push heroku master
$ heroku run gem list
Running gem list on damp-inlet-8048... up, run.5374

*** LOCAL GEMS ***

略
sass (3.4.19)
sass-rails (5.0.2)
sdoc (0.4.0)
spring (1.1.3)
sprockets (3.4.0)

$ heroku ps
=== web (Free): bin/rails server -p $PORT -e $RAILS_ENV
web.1: up 2015/11/18 17:01:55 (~ 23s ago)

これで無事動くことができました。

ただこれは解決法ではないと思うので問題を探していきます。