カテゴリー:
Rails
タグ:
 Rails4 デプロイ Capistrano3

このエントリーをはてなブックマークに追加
更新日時:
2014年07月17日(木)
作成日時:
2014年07月17日(木)

前の記事 / 次の記事

Capistrano変わりすぎだから。

参考

インストール

Rails4のデフォルトだと次の行がコメントアウトしてるはずなので復活させる。

$ vi Gemfile
# Use Capistrano for deployment
gem 'capistrano-rails', group: :development

$ bundle install

$ bundle exec cap install
mkdir -p config/deploy
create config/deploy.rb
create config/deploy/staging.rb
create config/deploy/production.rb
mkdir -p lib/capistrano/tasks
Capified

設定ファイルの編集

Capfile

必要に応じてコメントアウトして必要なgemをrequireする。

$ vi Capfile
# Load DSL and Setup Up Stages
require 'capistrano/setup'

# Includes default deployment tasks
require 'capistrano/deploy'

# Includes tasks from other gems included in your Gemfile
#
# For documentation on these, see for example:
#
#   https://github.com/capistrano/rvm
#   https://github.com/capistrano/rbenv
#   https://github.com/capistrano/chruby
#   https://github.com/capistrano/bundler
#   https://github.com/capistrano/rails
#
# require 'capistrano/rvm'
# require 'capistrano/rbenv'
# require 'capistrano/chruby'
require 'capistrano/bundler'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'

# Loads custom tasks from `lib/capistrano/tasks' if you have any defined.
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }

環境別ファイル

参考:Capistrano 3への手引き

$ vi config/deploy/production.rb
# 
# 実行環境がファイル名と異なる場合は明示的に定義する必要がある。
# config/deploy/production.rb は production 環境で起動さされるので定義は不要。
# 例えば、config/deploy/staging.rb は デフォルトでは staging 環境として
# Railsを起動しようとしてそんなもんねーって話になるので、
# :rails_env の設定が必要。
#
# set :rails_env, "production"

# Simple Role Syntax
# ==================
# Sup/ports bulk-adding hosts to roles, the primary server in each group
# is considered to be the first unless any hosts have the primary
# property set.  Don't declare `role :all`, it's a meta role.

#
# サーバーごとに個別にログインユーザーとサーバーを設定する場合は
# 次のような記述でサーバーごとに記述できる。
#
#role :app, %w{user@hostname:port}
#role :web, %w{user@hostname:port}
#role :db,  %w{user@hostname:port}


# Extended Server Syntax
# ======================
# This can be used to drop a more detailed server definition into the
# server list. The second argument is a, or duck-types, Hash and is
# used to set extended properties on the server.

#
# 例えば全てのサーバーが同じマシンで
# 全てのサーバーに同じユーザーでログインするような場合、
# 次のような記述で同じ設定を対象のサーバーに適用することができる。
#
server 'hostname:port', user: 'user', roles: %w{web app db}, my_property: :my_value


# Custom SSH Options
# ==================
# You may pass any option but keep in mind that net/ssh understands a
# limited set of options, 
# consult[net/ssh documentation]
# (http://net-ssh.github.io/net-ssh/classes/Net/SSH.html#method-c-start).
#
# Global options
# --------------
#  set :ssh_options, {
#    keys: %w(/home/rlisowski/.ssh/id_rsa),
#    forward_agent: false,
#    auth_methods: %w(password)
#  }
#
# And/or per server (overrides global)
# ------------------------------------
# server 'example.com',
#   user: 'user_name',
#   roles: %w{web app},
#   ssh_options: {
#     user: 'user_name', # overrides user setting above
#     keys: %w(/home/user_name/.ssh/id_rsa),
#     forward_agent: false,
#     auth_methods: %w(publickey password)
#     # password: 'please use keys'
#   }