バックエンドエンジニアを目指し、Ruby on RailsでGoogleの口コミから信憑性の高い投稿のみを抽出して評価を判定するサービスをポートフォリオとして作成しました。
ローカル環境で正常に動くものができ、いざHerokuにデプロイしてURLにアクセスしてみるとApplication error
となってしまいその原因が分からず数日間悩みました。
今回はデプロイ後にApplication error
となってしまった原因2つを紹介します。
前提
- Rails 6.1.3.2
- ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin20]
- selenium-webdriver
- ChromeDriver
- Herokuへのデプロイを考慮して、データベースはRailsでデフォルトのSQLiteからpostgresqlへ変更済み
必要なbuildpack が追加されていなかった
-
heroku/ruby
heroku/nodejs
、Google Chromeを操作するために必要なドライバheroku/chromedriver
の3つが揃っていなかった - 原因
- デフォルトで
heroku/ruby
heroku/nodejs
が存在していたにも関わらず、heroku buildpacks:set heroku/chromedriver
を実行してしまった -
heroku buildpacks:set
は既存のbuildpacksをすべて吹き飛ばして引数で指定したbuildpackが追加されるため、heroku/ruby
heroku/nodejs
が消えてheroku/chromedriver
のみが存在する形になった -
heroku/chromedriver
を設定したい場合はheroku buildpacks:add heroku/chromedriver
とすることで既存のbuildpackを上書きすることなく追加できた
- デフォルトで