ProMemoGram

プログラミング関連のメモ。

【Vagrantfileの設定】Vagrantの共有フォルダがホスト側から仮想環境への一方向にしか同期してくれない時の解決法

おそらく同じような問題で悩んでる人はいないと思いますが、万が一僕みたいなバカが他にもいた時のために一応記事にしておきます。

症状:Vagrantの共有フォルダがホスト側から仮想環境への一方向にしか同期しない

Vagrantfileは正しく記述されているのに、なぜか共有フォルダがうまく機能しない。
仮想環境上の共有フォルダにファイルを置いても、ホスト側の共有フォルダにはファイルが同期されないが、逆の場合はちゃんと同期されてる。

解決法:typeオプションでtype: "virtualbox"を指定する

typeで指定できるのは、共有フォルダのタイプです。
種類は3タイプで、virtualboxNFSrsync
これを指定していないと、デフォルトでNFSが選ばれることになる。
しかし、WindowsNFSが使えないため、rsyncが適応されることになる。これこそが問題の原因。
rsyncは一方向への同期しかサポートしていない。
よって、明示的にtypeをvirtualboxに指定してやればこの問題は解決する。

config.vm.synced_folder ".", "/vagrant", type: "virtualbox"

具体的にはこんな感じ