有没有办法在Vagrant中同步子文件夹?

时间:2014-03-01 11:26:10

标签: vagrant

我的项目文件夹中的子文件夹很少,不需要同步到来宾计算机。 (特别是.git文件夹,其中包含> 800个文件。)有没有办法在Vagrant中同步已同步文件夹的子文件夹?或者我该如何防止不需要的文件夹被同步?

默认情况下同步/vagrant/时,以这种方式停用同步似乎不起作用:

config.vm.synced_folder "www/kisa/.git/", "/vagrant/www/kisa/.git/", disabled: true

2 个答案:

答案 0 :(得分:3)

通常(使用vboxsf,vmhgfs,NFS,...)通过将指定目录从主机挂载到guest虚拟机来完成同步。出于性能原因,不应该阻止某些内容“同步”,因为除非您从guest虚拟机访问数据,否则不会传输数据。如果您在guest虚拟机上写入数据但又不想将其同步回主机,则最简单的方法是将其写入其他位置。 =)

即将推出的Vagrant 1.5将包含rsync synced folders,它将支持rsync__exclude选项。一些云提供程序插件(aws,digital_ocean,..)已经使用rsync,但是对排除的支持取决于提供程序。在某些情况下,您只需要分别同步所需的文件夹。您可以使用

禁用默认同步
config.vm.synced_folder ".", "/vagrant", disabled: true

答案 1 :(得分:0)

我不能假装理解这一点,但this.所示的方法似乎适用于Windows 7主机上的Linux(Ubuntu)客户端。

我想将它用于他所描述的内容 - 排除node_modules目录的共享。

如果链接消失,则要点是:

$ mkdir ~/vagrant_node_modules
$ sudo mount --bind ~/vagrant_node_modules /vagrant/node_modules

以便共享/vagrant,但/vagrant/node_modules不是。

比我更了解情况的人可能会知道这是否存在问题。