LoginSignup
17
17

More than 5 years have passed since last update.

Vagrant環境下でbundle installが止まる/遅い場合はNFSの設定を確認する

Posted at

Vagrant環境でRailsアプリをガシガシ開発していると、なぜかbundle installが妙に遅い、もしくは途中で完全に止まってしまう現象にぶち当たって悩んでいた所、諸悪の根源はどうやらNFSの設定だった模様。

なお、bundle installが止まっている場合、IOWaitが100%になってて、全く動作していない感じ。

対処方法

対処方法は非常に簡単。

  • NFSを設定していたら、OFFにしましょう。

…って言っても、NFSをOFFにしたらRailsアプリ重くて死ぬって言うこともあると思うので、ONにしたいよね。というわけで、もう少し調べて行ったら、どうやら複数のVagrantをNFSで動かしていて、しかもIPがかぶった場合?に動作がおかしくなるっぽい。

完全に確認したわけじゃないので、これが正しいかどうかは分からないが…

  • Vagrant環境には被らないIPを設定し、NFSを有効にする

これが今のところの対処法。

VagrantのNFS設定

そもそものVagrantでNFSを有効にする方法。さくっと設定するなら、こんな感じでしょう。

config.vm.synced_folder ".", "/vagrant", nfs: true

vagrant upするとrootパスワードを求められて、入力すれば自動的にNFSが設定されているはず。

command
# vagrant起動
$ vagrant up

# NFSの稼働状況確認
$ sudo nfsd status
nfsd service is enabled
nfsd is running (pid 2009, 8 threads)

さらに言うと、ホスト側の/etc/exportsにNFS対象ディレクトリ情報も記載されている。

# VAGRANT-BEGIN: 501 1c00c97c-5834-4a02-886d-90921fdf091e
"/Users/zaru/Sites/rails_proj" 192.168.33.17 -alldirs -mapall=501:20
# VAGRANT-END: 501 1c00c97c-5834-4a02-886d-90921fdf091e

ここまでは至って普通。

問題は、192.168.33.17このIPが指定されている他のVagrant環境がある場合に、おかしくなると思われる。まぁ、そりゃそうなんだろうけど、気が付かぬうちにIPがかぶっていることもある。なので、別のIPをちゃんと割り当ててあげればOK。

開発環境にはなるべくIPを固定で割り当てたいんだけど、ここは真面目に手動で管理するしかないのかな…。

17
17
1

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
17
17