もう忘れていたのでメモ。。
まずはプロジェクト用のフォルダ(例:myapp)をつくります。 myappに移動します。 capifyします。 configディレクトリに移動します。 deployディレクトリをつくります。
mkdir myapp cd myapp capify . mkdir config/deploy touch config/deploy/dev.rb
次に、config/deploy.rbと、config/deploy/development.rbとか、config/deploy/production.rbとかの中身をつくる。
config/deploy.rb
require "capistrano/ext/multistage" require "capistrano_colors" require "railsless-deploy" require "rubygems" ssh_options[:forward_agent] = true set :normalize_asset_timestamps, false set :use_sudo, false #ステージ set :stages, ["dev", "pro"] set :default_stage, "dev" # バージョン管理 set :scm, :subversion # リポジトリ set :repository, "リポジトリの場所" # ブランチ #set :branch, :master # デプロイ方式 set :deploy_via, :copy #世代管理 set :keep_releases, 3 # デプロイ対象外ファイル set :copy_exclude, [".svn", "**/.svn",".svn/*"]
config/deploy/dev.rb
# アプリケーション名 set :application, "アプリ名" # デプロイ先ディレクトリ set :deploy_to, "デプロイ先ディレクトリパス/#{application}" # デプロイサーバー role :web, "ユーザ@ホスト" role :app, "ユーザ@ホスト" #ユーザアカウント set:user, "ユーザ" set:password, "パスワード" namespace :deploy do before "deploy" do try_sudo "chown -R 所有者:グループ #{deploy_to}" end end after "deploy", "upload_config" desc "各種セットアップ情報をアップロードします" task :upload_config, roles => :web do run "rm -f #{latest_release}/app/Config/core.php" run "rm -f #{latest_release}/app/Config/bootstrap.php" run "rm -f #{latest_release}/app/Config/database.php" run "rm -f #{latest_release}/app/Config/email.php" run "rm -f #{latest_release}/app/Config/core.pro.php" run "rm -f #{latest_release}/app/Config/bootstrap.pro.php" run "rm -f #{latest_release}/app/Config/database.pro.php" run "rm -f #{latest_release}/app/Config/email.pro.php" run "mv -f #{latest_release}/app/Config/core.dev.php #{latest_release}/app/Config/core.php" run "mv -f #{latest_release}/app/Config/bootstrap.dev.php #{latest_release}/app/Config/bootstrap.php" run "mv -f #{latest_release}/app/Config/database.dev.php #{latest_release}/app/Config/database.php" run "mv -f #{latest_release}/app/Config/email.dev.php #{latest_release}/app/Config/email.php" run "chmod -R 755 #{deploy_to}/current/" end
次に、デプロイ先の初期セットアップをする。デプロイ先のサーバに必要なフォルダなどをつくってくれる。
cap dev deploy:setup
あとは、デプロイしたいときに、デプロイする。
cap dev deploy