vagrant reload synced_folder

时间:2016-01-06 17:45:28

标签: vagrant vagrantfile

这是我的Vagrantfile。

config.vm.define :web do |web|
 web.vm.box = "ubuntu/trusty64"
 web.vm.network "private_network", ip: "192.168.100.111"
 web.vm.network "forwarded_port", guest: 22, host: 4444,  id: "ssh", auto_correct: true  
 web.vm.synced_folder "./web/", "/srv/"

web.vm.provider "virtualbox" do |vb|
 vb.gui = true
 vb.name = "web"
 vb.cpus = 2     
 vb.memory = "1024"
end
end

我的VM工作正常,但我需要将web.vm.synced_folder "./web/", "/srv/"更改为其他路径。我尝试更改它,而不是 vagrant reload vagrant provision vagrant reload web --provision ,以及其他所有其他的posibile变体。这些行动无效。更改同步文件夹的唯一方法是销毁VM并再次启动它。这不是我想要的。我需要在不破坏VM的情况下重新加载配置,这是一个对我不起作用的问题。

3 个答案:

答案 0 :(得分:5)

这不是我对同步文件夹的体验,所以你看到这种行为很奇怪。来自Vagrant docs ...

  

在流浪汉和流浪汉重新加载过程中会自动设置同步文件夹。

我刚用我的一个Vagrant盒子测试它,它工作正常。我更改了本地文件夹,执行了vagrant reload,然后在框中进行了检查。更改远程文件夹后同上。

鉴于你的情况,你可以尝试一个选项。您可以禁用同步文件夹,运行vagrant reload,更新并重新启用它,然后再次vagrant reload。以下是如何禁用同步文件夹...

web.vm.synced_folder "./web/", "/srv/", disabled: true

或者您可以对该行进行评论,运行vagrant reload,取消注释并进行更改,然后再次vagrant reload

我无法保证这些方法,因为我无法重现您的问题。它无论如何都适合我。

答案 1 :(得分:0)

您需要将其他VBoxGuesstAdditions添加到您的VBox中,以便具有完全同步的文件夹。文件夹将与您的主机连续同步,因此可以从主机(作为来宾)观察主机和来宾对文件的修改。参见https://www.virtualbox.org/manual/ch04.html

答案 2 :(得分:0)

我遇到了类似的问题,就我而言,通过确保主机上仍存在先前的文件夹来解决了该问题。否则,我会得到一个错误,提示它不存在(不存在,因为那是我要起诉另一个主机文件夹的原因!)。