为 osx 和 win 使用一个 puphpet 配置


使用

puphpet配置是否可以根据主机操作系统更改代码目录?

我知道这可以用实际的流浪文件来完成,但我无法从 yaml 中看到如何做到这一点。

我试图将限定字段添加到 yaml:

    synced_folder:
        E6zs5ESFmosx:
            owner: ''
            group: ''
            source: '/Users/user/Development/www'
            target: /var/www
            sync_type: osx
            rsync:
                auto: 'false'
        E6zs5ESFmwin:
            owner: ''
            group: ''
            source: 'I:Developmentwww'
            target: /var/www
            sync_type: win
            rsync:
                auto: 'false'

然后更改流浪文件以相应地切换:

elsif folder['sync_type'] == 'osx'
        config.vm.synced_folder '#{folder['source']}', "#{folder['target']}", id: "#{i}", type: 'nfs'

但这仍然给出了一个错误,即 I:\Development\www 在尝试在 osx 中流浪时不可用。

解决此问题的最佳方法是什么?只需从 yaml 中删除文件夹并在流浪文件中手动定义它们?这意味着每次我使用 puphpet 生成新配置时都会有一点工作。还不错,但在我看来,应该有一种更简单的方法。

您可以从

config-custom.yaml文件中覆盖config.yaml内的设置。只需创建一个新文件并更改您想要的块。

使用deep_merge,因此您只需要更改所需的块,而不包含要保留为默认值的内容。

除此之外,您还可以编辑Vagrantfile以包含更多配置文件,具体取决于主机操作系统。

最新更新