sil*_*ica 5 ruby capistrano bundler
我试图使用Capistrano部署到两个不同的角色,两者都使用Bundler,但是Bundler命令和标志会有所不同.是否可以设置特定于角色的变量?要么像:
set :bundle_flags, "--deployment --quiet", :role => "web"
Run Code Online (Sandbox Code Playgroud)
要么:
role :web do
set :bundler_cmd, "--deployment --quiet"
end
Run Code Online (Sandbox Code Playgroud)
当然,这两种选择都不起作用.有没有办法实现这个,或类似的东西?
无法为每个角色提供自定义变量值。
您可以使用capistrano-ext的多阶段扩展来为两个不同的角色设置不同的阶段。
如果不同的阶段对您的部署没有意义,您可以编写自己的bundle:install任务并根据角色运行不同的命令
run "bundle --deployment --quiet", :roles => :web
run "bundle --deployment", :roles => :app
Run Code Online (Sandbox Code Playgroud)
然而,正如下面的评论中所指出的,如果角色没有定义服务器,这种方法将会引发错误。它还将串行运行每个命令。要解决这两个问题,请使用并行助手。
parallel do |session|
session.when 'in?(:web)', "bundle --deployment --quiet"
session.when 'in?(:app)', "bundle --deployment"
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1685 次 |
| 最近记录: |