And*_*inn 8 capistrano capistrano3
我在命名空间中有一个命名空间和几个任务,在deploy:updated之后运行.这是一个例子:
namespace :myservice do
task :start do
on roles(:app) do
sudo :start, "my/application"
end
end
end
Run Code Online (Sandbox Code Playgroud)
我喜欢这些任务中的一个只能在特定环境或主机属性上运行.我怎么能做到这一点?
我希望能够过滤环境,例如:
namespace :myservice do
task :start do
on roles(:app), env(:vagrant) do
sudo :start, "my/application"
end
end
end
Run Code Online (Sandbox Code Playgroud)
完成此任务的最佳方法是什么?
看来 capistrano 多阶段会对你有所帮助。https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension
本质上,您将有一个名为的阶段vagrant,您可以在其中定义配置变量,然后由您的主程序引用该变量deploy.rb并执行操作。
这是一个概念性示例,
# config/deploy/production.rb
set :should_start_my_application, false
# config/deploy/vagrant.rb
set :should_start_my_application, true
# config/deploy.rb
namespace :myservice do
task :start do
on roles(:app) do
if should_start_application then
sudo :start, "my/application"
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
997 次 |
| 最近记录: |