デプロイの運用方法
今後も使う事があると思うのでメモとして残しておきます。
EC2へSSHでログインする
username:~/environment $ ssh -i ~/.ssh/practice-aws.pem ec2-user@xx.xx.xx.xx
@xx.xx.xx.xxはEC2のパブリックIPアドレス
アプリケーションへ移動
[ec2-user@ip-xx-xx-xx-xx ~]$ cd アプリケーション名
GitHubからpull
最新のコードをGitHubからpullして持ってくる
[ec2-user@ip-xx-xx-xx-xx アプリケーション名]$git pull origin main
変更したフォルダーによる運用方法
Gemfileを変更した場合
1. ローカルからリモートリポジトリへpush
2. SSHでEC2へ接続
3. EC2上でアプリケーションへ移動
4. git pullする
5. 以下コマンドを実行
[ec2-user@ip-xx-xx-xx-xx アプリケーション名]$ bundle install --path vendor/bundle --without test development
CSS/JavaScript/画像を変更した場合
1. ローカルからリモートリポジトリへpush
2. SSHでEC2へ接続
3. EC2上でアプリケーションへ移動
4. git pullする
5. プリコンパイルを行う
[ec2-user@ip-xx-xx-xx-xx アプリケーション名]$ bundle exec rails assets:precompile RAILS_ENV=production
マイグレーションファイルを変更した場合
1. ローカルからリモートリポジトリへpush
2. SSHでEC2へ接続
3. EC2上でアプリケーションへ移動
4. git pullする
5. マイグレーションを行う
[ec2-user@ip-xx-xx-xx-xx アプリケーション名]$ bundle exec rails db:migrate RAILS_ENV=production
アプリケーションサーバーを起動
[ec2-user@ip-xx-xx-xx-xx アプリケーション名]$ rails s -e production
アプリケーションサーバーを停止するとき
[ec2-user@ip-xx-xx-xx-xx アプリケーション名]$ kill $(cat tmp/pids/puma.pid)
本番環境でデータベースをリセットしたいとき
[ec2-user@ip-xx-xx-xx-xx アプリケーション名]$ RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rails db:drop
[ec2-user@ip-xx-xx-xx-xx アプリケーション名]$ rails db:create RAILS_ENV=production
[ec2-user@ip-xx-xx-xx-xx アプリケーション名]$ rails db:migrate RAILS_ENV=production