我有一段时间没在Linux上使用过Vagrant.当我开始使用新版本(Vagrant 1.8)时,我遇到了一个问题:在来宾VM中创建的文件没有出现在主机的同步文件夹中.
如何强制Vagrant将来宾操作系统中的文件同步到主机操作系统?
根据文档,当未指定Vagrantfile中的type
选项config.vm.synced_folder
参数时,Vagrant会尝试选择最佳可用选项:
type
(字符串) - 同步文件夹的类型.如果未指定,则Vagrant将自动为您的环境选择最佳的同步文件夹选项.否则,您可以指定特定类型,例如"nfs".
从版本1.5开始,Vagrant 引入了新的"rsync同步文件夹"功能.
所以在我的情况下rsync
,自动选择了类型,即单向同步:从主机到访客.
为了使文件夹以双向同步,我在Vagrantfile中添加了显式定义:
config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
当然,这只适用于VirtualBox.
双向同步对于工作流很有用,其中客户机上的应用程序创建文件,例如,现代Web框架中的数据库迁移文件.
注意:当项目包含大量文件时,virtualbox同步文件夹会出现已知的性能问题.