2016-04-22 92 views
0

我正在使用Vagrant在Virtualbox上设置一个Ubuntu框。 在我指定同步文件夹同步我的代码与客户的无业游民文件:流浪同步的文件夹在流浪的时候通过宿主文件写入文件

config.vm.synced_folder "/host/target/webapp", "/guest/webapp" 

我的问题时,我的机器被破坏,然后用无业游民了重建才会出现。在这种情况下,Vagrant会将客户端上的我的文件夹同步到主机上的我的文件夹,而不是主机到客户端。

"/guest/webapp" ---> "/host/target/webapp" 

我不喜欢这种行为在所有的,如果我没有在我的代码检查主机上我的版本控制,我会失去我的代码。

同步是否应该是双向的?有没有一种方法可以将其配置为仅将一种方式更好的主机同步到guest虚拟机。在vagrant basic sync

找不到任何关于此的意见在那里的意见,那里的建议,它在哪里我的供应(厨师独奏),那里的问题的原因。 要从此排除提供阶段我并以下:

流浪了--no-提供

的主机内容,其中同步到客人。

RM -r /客体/ web应用/在来宾

导致主机内容,其中移除。

的mkdir /客/ web应用/ guest虚拟机上

创建的文件夹测试,其中还主机上创建的测试。

我认为这证明同步是双向的。

+0

这真的很奇怪,因为我只看到了主机 - >来宾,所以即使您在来宾上同步现有文件夹,它也会被来自主机的文件夹内容所取代。此外,我还有一些疑问,如果主机文件夹已被客人内容替换,那么当前文件夹将为空,因为流浪者将当前文件夹的默认文件夹同步为'/ vagrant'。对于这种情况(/ vagrant文​​件夹),你确认它能正常工作? –

+0

我明白你的疑惑。我使用Chef-Solo进行配置,将标准数据放到“/ guest/webapp”,我不知道哪一个会先发生,文件夹的同步或加载标准数据的配置。这只会发生,如果它是第一个规定,换句话说,当我运行任何流浪汉重新加载/提供 - 配置和框已经创建主机文件夹将不会被覆盖。 –

+0

安装共享文件夹发生在配置之前。第一次运行'vagrant up'时不需要配置'vagrant up --no-provision',你会看到主机文件夹没有被修改,它必须来自你的配置 –

回答

1

如此流浪Synced folders是真的同步(可能为什么他们不只是称为共享文件夹),所以一旦你同步你的文件夹,你在一边做任何行动将自动同步/复制另一边。 (阉它来自主机或客户)

如果你真的想要一个单向的分享,你可以看看[rsync的(https://www.vagrantup.com/docs/synced-folders/rsync.html

流浪可以使用rsync作为一种机制来同步一个文件夹给客人 机器。此同步文件夹类型主要用于其他已同步文件夹机制不可用的情况 ,例如 NFS或VirtualBox共享文件夹在guest虚拟机 中不可用。

rsync同步文件夹从机器 运行到由Vagrant启动的机器执行一次性单向同步。

+0

感谢您的帮助Frederic! –

+0

没问题,很高兴我们清楚:) –