Rails, capistranoの設定メモ

rails3.2で色々な環境にデプロイしようとしたcapistrano設定のメモ
もっとよい設定があると思うけど、動くのでこれで。

Gemfileには書かない。

gem install capistrano capistrano-ext

group :developmentから:productionに変更。

vim Gemfile
 gem 'therubyracer'

capifyは実行済み。

mkdir config/deploy
touch config/deploy/production.rb
touch config/deploy/staging.rb

共通設定をconfig/deploy.rbに記述
config/deploy.rbの先頭に、require “capistrano/ext/multistage” を記述する。

ステージング環境(結合環境)は自分自身にデプロイしたい。

vim config/deploy/staging.rb
 set :deploy_to, "/path/to/dir"
 set :ssh_options, { :forward_agent => true }
 role :web, '127.0.0.1'
 role :app, '127.0.0.1'
 #role :db, '127.0.0.1', :primary => true

本番環境config/deploy/production.rbはいつもどおりに記述。

deploy:assets:precompileやcleanを実行できるようにする。

vim Capfile
 load 'deploy/assets' #コメントアウトを外す

deploy時にbundle installを実行したい。
config/deploy.rbにrequire “bundler/capistrano” を記述する。
deploy:update_code→bundle:installの順番に実行される?

deploy:assets:precompileをbundle:installの後に実行する。

vim config/deploy.rb
 before('deploy:assets:precompile', 'bundle:install')

deploy時にbundle execがうまく動かないことがあるので、cap deployを実行している.bundle/configのシンボリックリンクを作ったりする。shared_pathにファイルを置いておく。
(cap bundle:installしたときの.bundle/configファイル)

vim config/deploy.rb
 namespace :deploy do
   task :bundlesymlink do
     run "cp #{shared_path}/config/bundle_config #{release_path}/.bundle/config"
   end
 end
 before('bundle:install','deploy:bundlesymlink')

ステージング環境でのデプロイ方法は、

cap staging deploy
広告

Rails, capistranoの設定メモ」への1件のフィードバック

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中