capistrano 1日目
capistrano による rails アプリケーションのデプロイの復習。
install
Gemfile に追記して、 bundle install
# Gemfile group :development do gem 'capistrano-rails' end
$ bundle install $ bundle exec cap -h See full documentation at http://capistranorb.com/. Install capistrano in a project: bundle exec cap install [STAGES=qa,staging,production,...] . . .
設定ファイルの生成
$ be cap install STAGES=production
STAGES
は必要に応じてカンマ区切りで列挙する。
Ex) STAGES=qa,staging,production
上記コマンドの場合、以下のファイルが作成される。
- Capfile
- config/deploy.rb
- config/deploy/production.rb
Git から引っ張ってくる
application
, repo_url
を適宜設定。
# config/deploy.rb set :application, 'my_app_name' set :repo_url, 'git@example.com:me/my_repo.git'
環境別のファイルに server
もしくは role
に deploy 先サーバを記載。
※ my-instance
は .ssh/config
に定義済みとする。
# config/deploy/production.rb # server based syntax の場合 server 'my-instance', roles: %w[app] # role based syntax の場合 # role :app, %w[my-instance]
$ bundle exec cap production deploy
これだけ指定したサーバに revision 管理されて配置されるようになる。
※デフォルトは /var/www/
$ ls -l /var/www/my_app_name/releases total 12 drwxr-xr-x 12 kawakubox kawakubox 4096 Dec 22 18:44 20171222184454 drwxr-xr-x 12 kawakubox kawakubox 4096 Dec 23 14:58 20171223145839 drwxr-xr-x 12 kawakubox kawakubox 4096 Dec 24 23:17 20171224231710
capistrano/rbenv
rbenv
に関する設定をいくつか記述する。
今回 rbenv
を anyenv
を介して、 home directory に入れたので、 rbenv_custom_path
を設定。
# config/deploy.rb set :rbenv_type, :user set :rbenv_ruby, '2.4.2' set :rbenv_custom_path, '/home/kawakubox/.anyenv/envs/rbenv' --- 今日はここまで。