【heroku】railsをデプロイした時に出たエラー
発生経緯
Vueの勉強がてらローカルで作っていたrailsアプリをherokuにデプロイしようとコマンドを叩いた。
$ git push heroku origin
すると見たことのないエラーが発生
remote: -----> Detecting rake tasks remote: remote: ! remote: ! Could not detect rake tasks remote: ! ensure you can run `$ bundle exec rake -P` against your app remote: ! and using the production group of your Gemfile. remote: ! Activating bundler (2.0.1) failed: remote: ! Could not find 'bundler' (2.0.1) required by your /tmp/build_6b1f695b994476ef74ee9e7d5cc6b6f0/Gemfile.lock. remote: ! To update to the latest version installed on your system, run `bundle update --bundler`. remote: ! To install the missing version, run `gem install bundler:2.0.1` remote: ! Checked in 'GEM_PATH=vendor/bundle/ruby/2.5.0', execute `gem env` for more information remote: !
出てくることは少ないかもしれないけど、忘れないようにメモ。
とりあえずエラーの中身確認
どうもbundlerをインストールせいと言っているので、先ずはバージョン確認。
$ bundler -v Bundler version 2.0.1
あれ?あってる… ってことはrailsのバージョンとbundlerのバージョンがheroku推奨とアンマッチの可能性がある。
解決手法
というわけで、railsとbundler両方ともアップデートをかけることにする。
$ brew update && brew upgrade ruby-build $ rbenv install 2.6.3 # railsは他でも使っているので、ひとまず適用させたいフォルダのみバージョン変更 $ rbenv local 2.6.3 # bundlerも最新のやつを入れておく $ gem install bundler -v 2.0.2 # このまま入れるとgemfileが書き変わらないので、一旦削除 $ rm Gemfile.lock $ bundle install
ここまで行うと .ruby-version
が新たに作られるので、忘れずに .gitignore
に追加しておく。
gitにpushし終えたら再びデプロイトライ。
$ git push heroku origin remote: Verifying deploy... done. * [new branch] master -> master
無事デプロイ完了!
デプロイまでしたら
DBを作るのを忘れがちなので、気をつける!
$ heroku run rails db:migrate
これで、無事にサイトが表示できるようになった。