Herokuのアセットプリコンパイルがうまくいかないと言うエラーが出たので、それについてまとめておきます。
Herokuのアセットプリコンパイルエラーの解決法
現象
いつも通りHerokuにコンテナをプッシュしようと思ってアセットプリコンパイルしようと思ったら、エラー・・・。
エラー内容
/usr/local/bundle/gems/sassc-2.2.1/lib/sassc/engine.rb:42: [BUG] Illegal instruction at 0x00007f878b268defバグとして報告してくれみたいな感じで出てました。一応解決できたのでそれについてまとめておきます。
解決法
結論から言うとGemのSasscをダウングレードします。理由は2.2系のSasscだとエラーになってしまうからです。
docker-compose downでコンテナをストップします。- Gemfileに
gem "sassc", ~>2.1.0"を記載してbundle installもしくはbundle updateします。 - そうしたら
`docker-compose up --buildで一度コンテナがちゃんと動くか確認します。localhost:3000でも正常に表示されることを確認。 - 再度
heroku container:loginからheroku container:push web、heroku container:release web、heroku run rails db:migrate、heroku run rails assets:precompileといけば、コンパイルが通るはず。 - あとは
heroku openでちゃんと動くか確認してください。
環境
Rails 6.0.2.2
Docker 19.03.8
Ruby 2.6.5
Heroku 7.39.2

