在我的Vagrantfile中,我有两个shell规定:一个用于为我的项目安装系统依赖项,另一个用于启动nginx服务器。
所以我想要的是当我vagrant reload --provision
时,我可以忽略安装系统依赖项的规定,而只是启动nginx服务器吗?
示例代码:
VAGRANTFILE_API_VERSION = '2'
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
...
# Ignore this line on VM reload
config.vm.provision 'shell', path: 'provision/install.sh'
# Execute this one only on VM reload
config.vm.provision 'shell', path: 'provision/start_nginx.sh'
...
end
答案 0 :(得分:3)
一个简单的解决方案,但有点黑客方法
您可以在运行vagrant reload命令时传递环境变量,如此
RELOAD=true vagrant reload --provision
然后在VagrantFile
VAGRANTFILE_API_VERSION = '2'
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
...
# Ignore this line on VM reload
if (ENV['RELOAD'] != true)
config.vm.provision 'shell', path: 'provision/install.sh'
end
# Execute this one only on VM reload
config.vm.provision 'shell', path: 'provision/start_nginx.sh'
...
end