Ruby on Rails チュートリアル 「1.5.2 Herokuにデプロイする(1)」でデプロイに失敗する
概要
Ruby on Rails チュートリアル(第6版)「1.5.2 Herokuにデプロイする(1)」で、壮大にハマってしまいました。
ハマりどころ
ハマった箇所は大きく2つ。
- webpack not found
- App crashed
解決する為に行なったことをそれぞれ記載して行きます。
webpack not found
事象
チュートリアルの手順通り、heroku にコードを push。
$ git push heroku master
すると、下記のようにビルドでコケてしまいます。
Compilation failed: error Command "webpack" not found.
対処法1:ビルドバックの追加
$ heroku buildpacks:add --index 1 heroku/nodejs $ heroku buildpacks:add --index 2 heroku/ruby
デフォルトでは ruby に関するビルドしか行われないので、node.js 周りのビルドに対応させる。
すると今度は node.js の起動コマンドが優先的に実行されてしまうので、ruby での起動を行う為に、ruby の buildpack も明示的に指定する。
参考
zenn.dev
対処法2:package.json に webpacker の依存を追加
{ "name": "hello_app", "private": true, "dependencies": { "@rails/actioncable": "^6.0.0", "@rails/activestorage": "^6.0.0", "@rails/webpacker": "5.2.1", // ココを追加 "@rails/ujs": "^6.0.0", "turbolinks": "^5.2.0" }, "version": "0.1.0", "devDependencies": { "webpack-dev-server": "^4.2.1" } }
反映
$ yarn install
参考
github.com
ビルドが通った〜!!と思ったら、アプリ側で別のエラー。。(下に続く)
App crashed
事象
アプリのアクセスで heroku のエラー画面が表示される。
下記のログが残っていました。
2021-09-25T20:37:14.473516+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" ...(略)
所感
エンジニア未経験の独学で、よく利用されるこのチュートリアルですが、
第1章で、いきなりこんな難しいハマり方をしたら、自分なら挫けちゃいますね(笑)
ハマっている方が前に進めることを祈っております!