我正在使用Vagrant在Virtualbox上设置一个ubuntu框。 在vagrant文件中,我已指定同步文件夹以将我的代码与来宾同步:
config.vm.synced_folder "/host/target/webapp", "/guest/webapp"
我的问题只有在机器被销毁然后用流浪汉重建时才出现。在这种情况下,Vagrant将guest虚拟机上的文件夹同步到主机上的文件夹,而不是托管给guest虚拟机。
"/guest/webapp" ---> "/host/target/webapp"
我根本不喜欢这种行为,如果我没有在主机上的代码中检查我的版本控制,我将丢失我的代码。
同步应该是双向的吗?有没有办法将其配置为仅将一种方式的主机同步到来宾。在vagrant basic sync
中找不到任何相关信息在下面的评论中有哪些建议,我在哪里配置(Chef-Solo)哪里出问题的原因。 为了排除配置阶段,我做了以下工作:
Vagrant up --no-provision
与来宾同步的主持人内容。
rm -r / guest / webapp / on guest
导致删除的主机内容也被删除。
客人的mkdir / guest / webapp / test
创建的文件夹测试也在主机上创建。
我认为这证明了同步是双向的。
答案 0 :(得分:1)
所以流浪的Synced folders实际上是同步的(可能为什么它们不仅仅被称为共享文件夹)所以一旦你同步你的文件夹,你在一边做的任何动作都会在另一边自动同步/复制。 (它来自主人或客人)
如果您真的想要单向共享,可以查看[rsync](https://www.vagrantup.com/docs/synced-folders/rsync.html)
Vagrant可以使用rsync作为将文件夹同步到来宾的机制 机。此同步文件夹类型主要用于情况 其他同步文件夹机制不可用的地方,例如何时 guest虚拟机中不提供NFS或VirtualBox共享文件夹 机。
rsync同步文件夹从计算机执行一次性单向同步 跑到Vagrant正在启动的机器上。