背景
Macを使っているのですが、docker-machine on Parallels Desktop Pro Edition な環境を構築しようとしたときに、dockerコンテナにbundle installする段階で何をやってもエラーを吐くので、この記事を書きました。
対処法
簡単です。
bundle install を実行しようとしているディレクトリにある、.bundle/configに以下の内容を追記するだけです。
BUNDLE_BUILD__NOKOGIRI: "--use-system-libraries"
追記したあとに、dockerコンテナを使ってbundle installを実行するとすんなり通ります。
見つけたきっかけ
nokogiriのエラーの前に、therubyracerでエラーを吐いていて$ bundle config --local build.therubyracer --with-v8-include=/usr/local/opt/v8@3.15を実行すれば解決するという情報を見て実際に解決したのですが、このコマンドは実行すると.bundle/configにBUNDLE_BUILD__THERUBYRACER: "--with-v8-dir=/usr/local/opt/v8@3.15"が追記されるようになっていました。
しかし、nokogiriでも同じようにbundle config build.nokogiri "--use-system-libaries"を実行してもなにも.bundle/configに変化になかったので、「もしかしたら手動で追記したら通るんじゃね?」と思ってやってみたら通った感じでした。
ほかの対策が成功に繋がったのでは、と思って一応追記した内容を削除して、bundle installで入れたgemが入っているディレクトリを削除してもう一度bundle install実行してみたところ通りませんでした。さらにもう一度追記した内容を戻してbundle installを実行してみたところ成功しました。この方法が一番シンプルだと思います。