背景
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
を実行してみたところ成功しました。この方法が一番シンプルだと思います。