【问题标题】:vagrant reload synced_foldervagrant 重新加载 synced_folder
【发布时间】:2016-01-06 17:45:28
【问题描述】:

这是我的 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 reloadvagrant provisionvagrant reload web --provision 以及所有其他可能的变体。这些操作不会有效果。更改同步文件夹的唯一方法是销毁 VM 并重新启动它。这不是我想要的。我需要在不破坏 VM 的情况下重新加载配置,这是它对我不起作用的问题。

【问题讨论】:

    标签: vagrant vagrantfile


    【解决方案1】:

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

    在 vagrant up 和 vagrant reload 期间会自动设置同步文件夹。

    我刚刚用我的一个 Vagrant 盒子对其进行了测试,它运行良好。我更改了本地文件夹,做了一个vagrant reload,然后在盒子上勾选了它。更改远程文件夹后同上。

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

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

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

    我无法保证这些方法,因为我无法重现您的问题。无论如何,它对我有用。

    【讨论】:

    • 运行“更新”什么?我已经完成了 vagrant up with disabled,vagrant halt 几次,删除了未使用的框,它仍在尝试使用错误的文件夹...:@
    【解决方案2】:

    您需要将额外的 VBoxGuesstAdditions 添加到您的 VBox 才能拥有完全同步的文件夹。文件夹将与您的主机持续同步,因此可以从主机和访客中观察到主机和访客对文件的修改。见https://www.virtualbox.org/manual/ch04.html

    【讨论】:

      【解决方案3】:

      我遇到了类似的问题,在我的情况下,它通过确保主机上仍然存在以前的文件夹来解决。否则,我会收到一个错误,指出它不存在(它不存在,因为这就是我想使用不同的主机文件夹的原因!)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-17
        • 1970-01-01
        • 1970-01-01
        • 2014-09-28
        • 1970-01-01
        • 2015-12-07
        • 2016-10-07
        • 1970-01-01
        相关资源
        最近更新 更多