0

我正在尝试添加一个额外的同步文件夹,除了默认的/vagrant.

我已经阅读了文档,这表明这应该很简单:

config.vm.synced_folder "/path/to/somewhere/on/host", "/path/to/guest_directory", create: true

当我将它添加到我的 Vagrantfile 然后重新配置它时,该guest_directory文件夹显示在主机上的预期位置,但它是空的。来宾操作系统中的文件夹也是空的......这会破坏我的网站,因为这些是网站文件有趣的是,如果我从 Vagrantfile 中删除它并再次重新配置,这些文件会重新出现在它们最初所在的来宾操作系统中。

流浪文件

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|

  config.vm.box = "ubuntu/xenial64"
  config.vm.network "private_network", ip: "192.168.33.99"

  # NEITHER OF THESE WORK...
  # config.vm.synced_folder "/Users/ESL/Sites/project/web__public_web", "/home/vagrant/web__public_web", create: true
  # config.vm.synced_folder "./web__public_web", "/home/vagrant/web__public_web", type: "rsync", rsync__args: ["--verbose", "--archive", "--delete", "-z"], create: true

  config.vm.provider "virtualbox" do |vb|
    vb.memory = "2046"
  end

end

您可以看到我尝试了两种不同的type:选项,但都得到了相同的错误结果。我还尝试在里面放置一个指向项目文件的符号链接/vagrant/,但这也不起作用。(损坏的符号链接出现在主机 os 目录中,而不是我要访问的文件中)

以下是有关我的设置的更多详细信息,以防万一:

  • 在来宾操作系统中,项目文件位于 /home/vagrant/web__public_web 中,但文档根目录是 /srv/www/... ,其中包含指向前一个路径的符号链接。
  • VirtualBox:版本 5.2.18 r124319 (Qt5.6.3)
  • 流浪者:v2.1.0
  • OSX:10.13.6

我究竟做错了什么?

4

2 回答 2

0

我回答了我自己的问题...

事实证明,同步一直在工作。但我误解了同步的方向性。我期待来宾操作系统中的文件显示在主机目录中,但情况恰恰相反。主机目录上的空文件夹正在同步到来宾并清除所有文件。

在我手动将所有文件从来宾复制到主机目录后,相同的配置按预期工作。

底线:如果您想将现有来宾文件夹与其中的文件同步,您必须先手动将其移动到主机操作系统上的适当位置。

于 2018-11-08T16:33:47.013 回答
0

每个坐骑都需要一个唯一的 ID,如果盒子已经建成,您需要重新构建它。

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|

  config.vm.box = "ubuntu/xenial64"
  config.vm.network "private_network", ip: "192.168.33.99"

  config.vm.synced_folder "/Users/ESL/Sites/project/web__public_web", "/path/where/mounted/on/vm", id: "unique_id_1", type: "rsync", rsync__args: ["--verbose", "--archive", "--delete", "-z"], create: true
  config.vm.synced_folder "/home/vagrant/web__public_web", "/path/where/mounted/on/vm2", id: "unique_id_2", type: "rsync", rsync__args: ["--verbose", "--archive", "--delete", "-z"], create: true

  config.vm.provider "virtualbox" do |vb|
    vb.memory = "2046"
  end

end
于 2018-11-08T15:45:05.887 回答