Herokuのプリコンパイルエラーについて

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だとエラーになってしまうからです。

  1. docker-compose downでコンテナをストップします。
  2. Gemfileにgem "sassc", ~>2.1.0"を記載してbundle installもしくはbundle updateします。
  3. そうしたら`docker-compose up --buildで一度コンテナがちゃんと動くか確認します。localhost:3000でも正常に表示されることを確認。
  4. 再度heroku container:loginからheroku container:push webheroku container:release webheroku run rails db:migrateheroku run rails assets:precompile といけば、コンパイルが通るはず。
  5. あとはheroku openでちゃんと動くか確認してください。

環境

Rails 6.0.2.2

Docker 19.03.8

Ruby 2.6.5

Heroku 7.39.2

 

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA