这是我的 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 重装 , Vagrant 条款 , vagrant reload web --provision ,以及所有其他可能的变体。这些 Action 不会有效果。更改同步文件夹的唯一方法是销毁 VM 并再次启动它。这不是我想要的。我需要在不破坏 VM 的情况下重新加载配置,这就是它对我不起作用的问题。
最佳答案
这不是我对同步文件夹的体验,因此您看到这种行为非常奇怪。来自 Vagrant docs ...
Synced folders are automatically setup during vagrant up and vagrant reload.
我刚刚用我的一个 Vagrant 盒子对其进行了测试,效果很好。我更改了本地文件夹,做了一个
vagrant reload
,然后在框中选中它。更改远程文件夹后同上。鉴于您的情况,您可以尝试一个选项。您可以禁用同步文件夹,运行
vagrant reload
,更新并重新启用它,然后 vagrant reload
再次。这是禁用同步文件夹的方法...web.vm.synced_folder "./web/", "/srv/", disabled: true
或者你可以评论该行,运行
vagrant reload
,取消注释并更改它,然后 vagrant reload
再次。我无法保证这些方法,因为我无法重现您的问题。无论如何,它只对我有用。
关于 Vagrant 重新加载synced_folder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34639407/