【发布时间】:2013-07-23 17:18:44
【问题描述】:
我正在尝试使用 multistage/ext 扩展部署我的应用程序。当每个阶段位于不同的服务器中时,它工作正常。但是对于一个特定的项目,我想将两个阶段部署到同一台服务器。
为此,我需要在每台服务器上设置不同的应用程序名称。那是行不通的。
我将application 变量移到了暂存文件中,并使用延迟加载定义了deploy_to 变量。
config/deploy.rb
set :stages, %w(production beta)
set :default_stage, "beta"
require 'capistrano/ext/multistage'
#set :application, "myapp-beta"
set :user, "deploy"
set (:deploy_to) { "/home/#{user}/applications/#{application}" }
config/deploy/beta.rb
server "my.server.com", :web, :app, :db, primary: true
set :application, "myapp-beta"
set :domains, "beta.myapp.com"
set :branch, "beta"
我收到Please specify the name of your application, set :application, 'foo' 错误
也许我应该考虑部署到不同的服务器,但现在我真的很想了解为什么这不起作用。
谢谢
【问题讨论】:
-
您在部署生产吗?你有 :application 设置吗?
-
我尝试并重现了确切的错误。这是因为您的变量应用程序未设置。因此,我假设您没有调用 cap beta deploy:setup。相反,您必须调用 cap deploy:setup 或其他一些通用任务,而不指定定义应用程序变量的环境。
标签: ruby capistrano