【问题标题】:Vagrant synced_folder fmode vs file_modeVagrant synced_folder fmode vs file_mode
【发布时间】:2019-04-15 08:36:13
【问题描述】:

使用 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。

【问题讨论】:

    标签: vagrant virtualbox hyper-v


    【解决方案1】:

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

    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
    

    【讨论】:

    • 太棒了!这解决了我最初的痛苦 - 谢谢!尽管为跨平台软件在不同平台上以不同方式命名开关的决定似乎仍然值得怀疑?
    • 它可能是,但由于 vagrant 依赖于这些提供者并且提供者的行为不同,vagrant 需要来自 vagrantfile 的一些支持,以了解如何使其适用于所有不同平台的用例
    猜你喜欢
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    • 2016-10-07
    • 1970-01-01
    • 2023-04-08
    • 2022-10-13
    相关资源
    最近更新 更多