Автоматизация развертывания приложений Zend Framework с использованием Capistrano - PullRequest
2 голосов
/ 14 марта 2012

В последние несколько часов я боролся с Capistrano за автоматизацию развертывания приложения Zend Framework. Хотелось бы немного руководства.

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

<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 (информация scm опущена)

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, "git@github.com:<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 Ответ

1 голос
/ 14 марта 2012

Я думаю, что ваша строка stage_dir должна быть:

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

то есть stage_dir вместо stage_dir

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...