gpt4 book ai didi

ruby - Capistrano 可以根据角色设置变量吗?

转载 作者:数据小太阳 更新时间:2023-10-29 07:19:36 24 4
gpt4 key购买 nike

我正在尝试使用 Capistrano 部署到两个不同的角色,在两个角色上都使用 Bundler,但是 Bundler 命令和标志会有所不同。是否可以设置特定于角色的变量?要么是这样的:

set :bundle_flags, "--deployment --quiet", :role => "web"

或:

role :web do
set :bundler_cmd, "--deployment --quiet"
end

当然,这两个选项都行不通。有什么办法可以做到这一点,或类似的东西吗?

最佳答案

无法为每个角色设置自定义变量值。

您可以改为使用 capistrano-ext 中的多级扩展为您的两个不同角色设置不同的阶段。

如果不同的阶段对您的部署没有意义,您可以编写自己的 bundle:install 任务并根据角色运行不同的命令

run "bundle --deployment --quiet", :roles => :web
run "bundle --deployment", :roles => :app

如以下评论所述,但是,如果角色未定义服务器,则此方法会引发错误。它还将连续运行每个命令。要解决这两个问题,请使用并行助手。

parallel do |session|
session.when 'in?(:web)', "bundle --deployment --quiet"
session.when 'in?(:app)', "bundle --deployment"
end

关于ruby - Capistrano 可以根据角色设置变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4573014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com