2012-03-14 9 views
2

私は過去数時間、Zendフレームワークアプリケーションのデプロイを自動化するためにCapistranoと闘ってきました。いくつかの指導が大好きです。Capistranoを使用したZendフレームワークアプリケーションのデプロイの自動化

<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, "[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を使用していますが、私はサーバー側でデバッグする必要がある段階にはないと思います。私が定義したとしてもステージングタスクを検出できないとCapistranoは言う。エラーは

triggering load callbacks 
the task `staging' does not exist 

私は間違っていますか?

ありがとうございます!

答えて

1
私はあなたのstages_dirラインがあるべきだと思う

:代わりにstages_dirの

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

すなわちstage_dir

編集:私はrailslessの展開に慣れていないんだけど、それを見てから、それはのいくつかをオーバーライドする必要があります標準カピストラーノ展開レシピ。あなたが使用している多段の宝石も同じことをするので、私は2つが互換性がないと思います。多段エクステンションが使用されていないことを間違いなく示唆しています。

私はCapistrano - http://tfountain.co.uk/blog/2009/5/11/zend-framework-capistrano-deploymentでZFアプリケーションを展開するには、以前にブログ記事を投稿しました。これも多段階を使用しています。あなたが取ったアプローチはそれにかなり似ています。レールレスデプロイ(少なくとも実験として)を落としても構わない場合は、Capfileとdeploy.rbを調整して、そのポストの内容と一致するようにして(レールレスデプロイメントの要件を削除して)、問題。

+0

それは役に立ちません。私はまだ同じエラーが発生します。 – Satyam

+0

別のアイデアを含めるために私の答えを編集しました –

関連する問題