我有以下配置,只对vagrant up命令有意义:
config.vm.provider :virtualbox do |vb|
vb.gui = false
if ENV["VB_GUI"] == "true" then vb.gui = true
else
puts("[info] VB_GUI environment variable not set so running headless")
end
end
Run Code Online (Sandbox Code Playgroud)
是否有可能挂钩到vagrant API来检索当前正在执行的命令?例如
config.vm.provider :virtualbox do |vb|
vb.gui = false
if VAGRANT_API.command == "up" # how can I do this?
if ENV["VB_GUI"] == "true" then vb.gui = true
else
puts("[info] VB_GUI environment variable not set so running headless")
end
end
end
Run Code Online (Sandbox Code Playgroud)
Mat*_*per 23
A Vagrantfile只是ruby代码,因此您可以使用ARGV数组轻松获取命令行参数.
以下面的vagrant命令为例:
vagrant up webserver
这将启动在您的网站中定义为网络服务器的Vagrant框Vagrantfile.然后,您可以像这样访问参数:
ARGV[0] = up
ARGV[1] = webserver
Run Code Online (Sandbox Code Playgroud)
因此,使用您的示例,您需要执行以下操作:
config.vm.provider :virtualbox do |vb|
vb.gui = false
if ARGV[0] == "up"
if ENV["VB_GUI"] == "true" then vb.gui = true
else
puts("[info] VB_GUI environment variable not set so running headless")
end
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5105 次 |
| 最近记录: |