这是我的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的情况下重新加载配置,这是一个对我不起作用的问题。
答案 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)
我遇到了类似的问题,就我而言,通过确保主机上仍存在先前的文件夹来解决了该问题。否则,我会得到一个错误,提示它不存在(不存在,因为那是我要起诉另一个主机文件夹的原因!)。