Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

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を固定で割り当てたいんだけど、ここは真面目に手動で管理するしかないのかな…。

zaru
basicinc
マーケティングとテクノロジーで社会のあらゆる問題を解決する集団
https://tech.basicinc.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした