##はじめに
前回、Capistranoによる自動デプロイを導入しましたが、その中で個人的に、コマンド一つ覚えていればいいかと勝手思っていましたが、自動デプロイする前にやるべきことがあります。
それを簡単に記事に残しておきます。
よろしくお願いします。
##ローカルでVScodeを修正した場合
これは単純にアプリの改修や変更を行った場合、必ずリモートリポジトリにコミット、プッシュを行います。
もしブランチを切っている場合はmergeまで行います。
その後、一度プロセスをkillします。
例↓
まずはプロセスを確認します。
[ec2-user@ip-172-31-23-189 <リポジトリ名>]$ ps aux | grep unicorn
ec2-user 17877 0.4 18.1 588472 182840 ? Sl 01:55 0:02 unicorn_rails master -c config/unicorn.rb -E production -D
ec2-user 17881 0.0 17.3 589088 175164 ? Sl 01:55 0:00 unicorn_rails worker[0] -c config/unicorn.rb -E production -D
ec2-user 17911 0.0 0.2 110532 2180 pts/0 S+ 02:05 0:00 grep --color=auto unicorn
続いてプロセスをkill
# 上記の例だと「17877」
[ec2-user@ip-172-31-23-189 <リポジトリ名>]$ kill プロセス番号
そして最後にローカルのアプリディレクトリでbundle exec cap production deploy
を実行して完了。
##ローカルでデータベース関連の内容を修正した場合
もしデータベース関連の修正を行った場合、まず本番環境で下記の二つのコマンドを実行します。
※実行する際、「DISABLE_DATABASE_ENVIRONMENT_CHECK=1」というオプションが必要です。
rails db:drop RAILS_ENV=production
rails db:create RAILS_ENV=production
その後、一度プロセスをkillします。
例↓
まずはプロセスを確認します。
[ec2-user@ip-172-31-23-189 <リポジトリ名>]$ ps aux | grep unicorn
ec2-user 17877 0.4 18.1 588472 182840 ? Sl 01:55 0:02 unicorn_rails master -c config/unicorn.rb -E production -D
ec2-user 17881 0.0 17.3 589088 175164 ? Sl 01:55 0:00 unicorn_rails worker[0] -c config/unicorn.rb -E production -D
ec2-user 17911 0.0 0.2 110532 2180 pts/0 S+ 02:05 0:00 grep --color=auto unicorn
続いてプロセスをkill
# 上記の例だと「17877」
[ec2-user@ip-172-31-23-189 <リポジトリ名>]$ kill プロセス番号
そして最後にローカルのアプリディレクトリでbundle exec cap production deploy
を実行して完了。
##Nginxを修正した場合
Nginxの修正を行った場合は下記コマンドを実行します。
sudo systemctl restart nginx
##最後に
Capistrano導入後、bundle exec cap production deployのコマンドさえ打てば自動デプロイしてくれると思っていましたが、もう一手間加えないといけなくて、私は少し失敗しました。
このような細かいところもしっかり身につけたいと感じました。