首页 > 解决方案 > Vagrant synced_folder fmode vs file_mode

问题描述

使用 Vagrant 必须使用这样的配置才能与 Hyper-V 与 Virtualbox 一起使用:

(虚拟盒子)

config.vm.synced_folder ".", "/var/www/btoc/", mount_options: ["fmode=666", "dmode=777"]

(Hyper-V)

config.vm.synced_folder ".", "/var/www/btoc/", mount_options: ["file_mode=0777", "dir_mode=0777"]

唯一的区别是 fmode/dmode 与 file_mode/dir_mode。
但这导致无法分别在另一个上启动。Vagrant up 在尝试时死于神秘的消息/问题。

有解决方法吗?
为什么做出这个决定?
这仅仅是一个错误的决定还是我遗漏了一些明显的东西?

在 Windows 上使用 Vagrant 2.2.3。

标签: vagrantvirtualboxhyper-v

解决方案


当每个提供商有不同的设置时,您可以覆盖提供商特定部分中的设置:

Vagrant.configure("2") do |config|
  config.vm.box = "xxxx"

  config.vm.provider "virtualbox" do |vb, override|
    override.vm.synced_folder ".", "/var/www/btoc/", mount_options: ["fmode=666", "dmode=777"]
  end

  config.vm.provider "hyperv" do |h, override|
    override.vm.synced_folder ".", "/var/www/btoc/", mount_options: ["file_mode=666", "dir_mode=777"]
  end

end

推荐阅读