3

我目前正在使用 Symfony2 和 Gitflow 开发一个网站。我有 2 个外部服务器,分别称为“开发”、“暂存”和“生产”,以及 Github 上的中央 GIT 存储库。

我希望使用 Capifony 来:

  • 将“开发”分支更改部署到开发服务器。
  • 将任何版本/修补程序等部署到暂存以进行测试
  • 将“主”分支部署到实时“生产”服务器

我一直在阅读这个关于多阶段部署的页面,到目前为止已经安装了带有 capistrano 扩展的 capifony。

在我的 /app/config/deploy.rb 文件中,我有以下内容:

set :stage_dir, 'app/config/deploy' # needed for Symfony2 only
require 'capistrano/ext/multistage'
set :stages, %w(production staging development)

set :application, "MyApp"

set :repository,  "git@github.com:MyCompany/#{application}.git"
set :scm,         :git

set  :keep_releases,  3

然后,我得到了一个单独的 /app/config/development.rb 文件,其中包含以下内容:

server 'SERVER_IP - PORT NUMBER', :app, :web, :primary => true
set :deploy_to, "/var/www/MyApp/" #directory on server
set :symfony_env_prod, "test"

但是,如果我运行 cap development deploy 我会得到一个错误

the task `development' does not exist

有人能解释一下“任务”指的是什么吗?

谢谢

4

1 回答 1

1

移动require 'capistrano/ext/multistage'到最后一行deploy.rb或至少移动它set :stages, %w(production staging development)之前的行。

于 2013-02-08T18:54:41.130 回答