2012-03-14 1 views
2

Я боролся с Capistrano, чтобы автоматизировать развертывание приложения Zend Framework в течение последних нескольких часов. Хотелось бы узнать какое-то руководство.Автоматизация развертывания приложений каркаса Zend с использованием Capistrano

Моя структура каталогов выглядит следующим образом

<project name>/ 
    Capfile 
    application/ 
     configs/ 
      deploy/ 
       staging.rb 
      application.ini 
      deploy.rb 
     controllers/ 
     models/ 
    . 
    . 
    . 
    other framework folders and files 

Мои Capfile является

require 'rubygems' 
require 'railsless-deploy' 
require 'capistrano/ext/multistage' 

load 'deploy' if respond_to?(:namespace) # cap2 differentiator 

Мой deploy.rb есть (СКМ информация опущена)

set :application, "App" 

set :stages, %w(staging production) 
set :default_stage, "staging" 
set :stages_dir, "application/configs/deploy/" 

default_run_options[:pty] = true 

set :deploy_via, :remote_cache 
set :scm, "git" 
set :ssh_options, {:forward_agent => true} 
set :repository, "[email protected]:<details>" 
set :branch, "staging" 

И мой staging.rb внутри моя папка развертывания (учетные данные опущены)

role :app, "host name" 
role :web, "host name" 
role :db, "host name", :primary => true 

set :deploy_to, "/httpdocs/" 

set :user, "username" 
set :password, "password" 

Я использую VPS, но я не думаю, что я нахожусь на том этапе, где мне нужно отлаживать серверную часть. Капистрано говорит, что он не может обнаружить постановку задачи, хотя я ее определил. Ошибка

triggering load callbacks 
the task `staging' does not exist 

Что я делаю неправильно?

Спасибо!

ответ

1

Я думаю, что ваша stages_dir линия должна быть:

set :stage_dir, "application/configs/deploy/" 

т.е. stage_dir вместо stages_dir

Edit: Я не знаком с railsless Deploy, но смотреть на него необходимо переопределить некоторые из стандартный рецепт развертывания Capistrano. Поскольку многоступенчатый камень, который вы используете, будет делать то же самое, я бы предположил, что два несовместимы. Ошибка, которую вы получаете, предполагает, что многоэтапное расширение не используется.

Я написал сообщение в блоге много лет назад о развертывании приложений ZF с Capistrano - http://tfountain.co.uk/blog/2009/5/11/zend-framework-capistrano-deployment - также с использованием многоступенчатого. Подход, который вы сделали, очень похож на этот. Если вы не возражаете отказаться от развертывания railsless (по крайней мере, в качестве эксперимента), я бы предложил настроить ваш Capfile и deploy.rb, чтобы он соответствовал тому, что находится в этом сообщении (таким образом, устраняя необходимость развертывания без railsless) и выясняя, исправляет ли это ваш вопрос.

+0

Это не поможет. Я все равно получаю ту же ошибку. – Satyam

+0

Я отредактировал свой ответ, чтобы включить другую идею –