0
0

More than 3 years have passed since last update.

Rails+mecab+Herokuでデプロイエラーが発生した場合の対策

Posted at

事象

  • Rails(6.0.0)
  • Heroku
  • Heroku Buildpacksにmecab(https://github.com/diasks2/heroku-buildpack-mecab.git)を追加

この条件で、Herokuでデプロイを行った場合、エラーが発生するケースがあると思います。

調査

デプロイエラーの内容は下記のようです。

 !     To update to the latest version installed on your system, run `bundle update --bundler`.
 !     To install the missing version, run `gem install bundler:2.0.2`

確かに、Gemfile.lockに下記のようにbundlerのバージョン指定をしています。

BUNDLED WITH
   2.0.2

そこで、Gemfile.lockのBUNDLED WITH指定を手作業で削除し、再度Herokuでデプロイします。
 ⇒正常にデプロイ完了します。

しかし、Heroku Buildpacksからmecabを外し、BUNDLED WITH 2.0.2指定を復活させ、再度Herokuでデプロイしてみたところ…
 ⇒正常にデプロイ完了します。解せません。

つまり、下記のような状態です。

- mecabあり mecabなし
BUNDLED WITH 2.0.2 デプロイNG デプロイOK
BUNDLED WITH なし デプロイOK デプロイOK

mecabとbundler v2.0.2は相性が悪いように読み取れます。

根本解決になっておらず恐縮ですが、
Rails+mecab+Herokuという(マニアックな)組み合わせでアプリケーションを作りたい場合、この事象に遭遇した際は、
手作業でGemfile.lockのBUNDLED WITH指定を削除すると、この事象を突破できると思います。

備忘

Config versにMECAB_PATH=/app/vendor/mecab/lib/libmecab.soの設定をお忘れなく!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0