osx & win 使用一个 puphpet 配置
Using one puphpet config for both osx & win
puphpet 配置是否可以根据主机更改代码目录OS?
我知道这可以用实际的 vagrant 文件来完成,但我看不到如何从 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:\Development\www'
target: /var/www
sync_type: win
rsync:
auto: 'false'
然后修改 vagrant 文件以进行相应的切换:
elsif folder['sync_type'] == 'osx'
config.vm.synced_folder '#{folder['source']}', "#{folder['target']}", id: "#{i}", type: 'nfs'
但这仍然会给出一个错误,关于 I:\Development\www not being available when trying to vagrant up within osx.
解决此问题的最佳方法是什么?只需从 yaml 中删除文件夹并在 vagrant 文件中手动定义它们?这意味着每次我使用 puphpet 生成新配置时都会有一些工作要做。还不错,但在我看来应该有更简单的方法。
您可以从 config-custom.yaml
文件覆盖 config.yaml
中的设置。只需创建一个新文件并更改您想要的块。
使用deep_merge
,所以你只需要改变你想要的块,而不包括你想要保持默认的。
除此之外,您还可以编辑 Vagrantfile
以包含更多配置文件,具体取决于主机 OS。
puphpet 配置是否可以根据主机更改代码目录OS?
我知道这可以用实际的 vagrant 文件来完成,但我看不到如何从 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:\Development\www'
target: /var/www
sync_type: win
rsync:
auto: 'false'
然后修改 vagrant 文件以进行相应的切换:
elsif folder['sync_type'] == 'osx'
config.vm.synced_folder '#{folder['source']}', "#{folder['target']}", id: "#{i}", type: 'nfs'
但这仍然会给出一个错误,关于 I:\Development\www not being available when trying to vagrant up within osx.
解决此问题的最佳方法是什么?只需从 yaml 中删除文件夹并在 vagrant 文件中手动定义它们?这意味着每次我使用 puphpet 生成新配置时都会有一些工作要做。还不错,但在我看来应该有更简单的方法。
您可以从 config-custom.yaml
文件覆盖 config.yaml
中的设置。只需创建一个新文件并更改您想要的块。
deep_merge
,所以你只需要改变你想要的块,而不包括你想要保持默认的。
除此之外,您还可以编辑 Vagrantfile
以包含更多配置文件,具体取决于主机 OS。