如何按供应商覆盖Vagrantfile的synced_folder类型?

时间:2019-04-30 22:42:49

标签: vagrantfile

我有一个Vagrantfile,其中有多个提供程序,并且它们不能使用相同的synced_folder类型。如何更改每个提供商部分中的所有synced_folder类型?我想避免为每个提供程序重复sync​​ed_folder定义。

  config.vm.synced_folder "prog", "/home/vagrant/prog", type: "virtualbox"
  # more synced folders

  config.vm.provider "docker" do |docker, override|
    override.vm.box = nil
    docker.build_dir = "."

    # change all synced_folder types here?

1 个答案:

答案 0 :(得分:0)

config.vm.synced_folder是一个方法调用,它附加到VM配置对象内部的@__synced_folders数据结构中。

一种实现方法是在synced_folder声明中保留未设置的类型,然后为每个提供程序将allowed_synced_folder_types设置为所需类型的数组。另一种方法可能是声明一个synced_folder参数的本地数组,在每个提供程序配置中对其进行循环以将所需的类型传递给synced_folder

override.vm.allowed_synced_folder_types = [:virtualbox, :rsync]