【问题标题】:Capistrano invoke deploy multiple times?Capistrano 多次调用部署?
【发布时间】:2015-04-28 08:47:27
【问题描述】:

我们正在开发一个允许我们使用 capistrano 一次部署多个项目的系统。我们有 3 个系统(前台、计费、应用程序),它们都有一个单独的代码库,并分多个阶段部署在不同的服务器上。

使用 capistrano_multiconfig 创建一个具有多种配置的 capistrano 存储库就像一个魅力。我可以单独运行每个命令,它们都可以在正确的阶段很好地部署到正确的服务器。

现在我想添加一个自定义任务,使用单个命令一次部署所有配置的项目。我已经粘贴了下面的命令代码。

set :projects, ['front', 'billing', 'app']

namespace :deploy do
    desc 'Deploy all'
    task :all do 
        set :env, ask('To what environment do you want to deploy?', 'staging');
        run_locally do
            fetch(:projects).each { |project| 
                info "Now deploying #{project} to #{fetch(:env)}" 
                invoke "#{project}:#{fetch(:env)}"
                invoke "deploy"
            }
        end
    end
end

问题是上面的代码只部署了第一个项目,info命令对.each循环的所有迭代执行,但部署命令的调用只对第一个项目运行,之后以下两个调用调用什么都不做。

有人有想法吗?

【问题讨论】:

  • 三个应用程序是否都部署为一个整体?如果没有,用户可能会看到一些错误,因为其中一部分已启动并且与其余部分不兼容。有人知道解决方案吗?

标签: capistrano capistrano3


【解决方案1】:

你应该重新启用任务

Rake::Task["deploy"].reenable

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多