Vagrant共有フォルダの罠

Vagrant(&VirtualBox)を使い開発する場合、

共有フォルダ(Synced Folders)を使いホストOS側(多くの場合Mac OS XかWindows)のファイルシステムを、ゲストOS(多くの場合Linux)からマウントする

という方法が便利なのでよく使われます。

この場合、以下のような罠があります。

ファイル名の大文字小文字の違い

ホストOS側のファイルシステムが大文字小文字を区別しない場合、ゲストOSがLinuxのような通常大文字小文字を区別するファイルシステムの場合でも、結果的に大文字小文字が区別されません。

つまり、ホストOSがMac OS XやWindowsの場合、ゲストOSでも大文字小文字が区別されないことになります。

結果として、Windowsで開発していて開発環境では動作したが、本番環境のLinux上ではファイル名の大文字小文字が違い、ファイルが見つからないというエラーになる、という典型的な問題が発生する可能性があります。

Apacheで静的ファイルの更新が検知されない

Apacheが静的ファイルをキャッシュし、その更新を検知できずにファイルが更新されないという問題も知られています。

共有フォルダはアクセスが遅い

よく知られていますが、Vagrantの共有フォルダは遅いです。

公式ドキュメントでは、NFSを使いましょうとなっています。

ただし、WindowsホストではNFSは使えません。

Windowsでの改善策としては、以下が知られています。

関連

Date: 2014/02/07

Tags: vagrant