Symfony2 + GitFlow + Capifony + Capistrano-ext

3
我目前正在使用Symfony2和Gitflow开发网站。 我有两个名为“development”、“staging”的外部服务器以及Github上的中央GIT存储库。
我希望使用Capifony来完成以下任务:
1. 将“develop”分支更改部署到开发服务器。 2. 部署任何“releases/hotfixes”等到测试环境“staging”。 3. 将“master”分支部署到生产服务器“production”。
我已经阅读了this关于多阶段部署的页面,并且已经安装了Capifony和Capistrano扩展。
在我的/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

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

谢谢

1个回答

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

另一个问题,我是否需要在3个服务器上初始化GIT才能从本地部署,因为我现在遇到了GIT克隆错误? - user1961082
1
根据错误类型不同,但很可能与您的部署密钥有关。请查看capifony文档中的代理转发部分,看看是否能够帮助您解决问题。 ssh_options[:forward_agent] = true - MDrollette
谢谢。现在我已经得到了一个绿色的勾号,表示“创建缓存目录”成功了,但是接下来出现了一个红色的叉号,表示“为共享目录创建符号链接”失败了,并且出现了错误信息:“无法创建符号链接`/var/www/MyApp/releases/20130209125336/web/uploads'”,错误提示为“没有这样的文件或目录”。在我的开发服务器上,在/var/www/MyApp/目录下创建了一个/releases/目录和/shared/web/uploads/以及/shared/app/logs/目录,但是除此之外什么都没有。 - user1961082

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接