Capistrano実践Tips集
とてもいい資料でした。
こちらを見てcapistrano-extを見て入れてみました。
install
$ gem install capistrano-ext $ mkdir -p config/deploy
設定
config/deploy.rb require 'capistrano/ext/multistage'
環境ごとの差分ファイルを
config/deploy/production.rb
のように作成する。
使用方法
cap
例:
cap production deploy
補足
set :stages, %w(dev prod)
のように環境名を明示的に設定することも可能だが
lib/capistrano/ext/multistage.rb
を見ると
unless exists?(:stages) set :stages, Dir["#{location}/*.rb"].map { |f| File.basename(f, ".rb") } end
となっているので、config/deploy下にのファイル名で環境名を判断してくれるようになっています。
また、
stages.each do |name| desc "Set the target stage to `#{name}'." task(name) do set :stage, name.to_sym load "#{location}/#{stage}" end end
とあるので:stage に環境名が設定される。
rake時に、RAILS_ENV用に設定していた下記のような変数が不要になりました。
set :rails_env, "production"