🦔

デプロイメモ

2024/07/14に公開

⭐️ログインまでの流れ

cloud9

今回は秘密鍵がPF-EC2-2の場合

SSHへのログインコマンド
ssh -i ~/.ssh/PF-EC2-2.pem ec2-user@xx.xx.xx.xx(PF-EC2のパブリックIPアドレス)

EC2

SSHで自分のアプリに移動
cd my_cafe
本番環境の起動
rails s -e production

⭐️最新版持ってくる時(デプロイ2回目以降)

cloud9

本番環境の起動
git add .
git commit -m "メッセージ"
git push origin main(ブランチ)

EC2

git pull origin main
反映させるために必須
kill $(cat tmp/pids/puma.pid)
rails s -e production

⭐️ サーバにパブリックIPアドレス打ってエラー確認。


これが出たらrailsのエラーだから

EC2

sudo tail -f log/production.log

して今出てるエラー確認する!!

これは今起きてるエラーしか出ないから動作確認が必須

⭐️エラーが出やすい時3選!!

1.Gemfileの変更をした時
2.CSS/JavaScript/画像の変更をした時
3.マイグレーションファイルの変更/追加をした時

[なぜ?]

git pullコマンドだけでは、コード取り込んだだけで、動作させるアプリケーションには反映されないから。
例えば画像を使うならcloud9でavtivestrageをインストールするよね。
それと同じで本番でもインストールが必要!
seedファイルとかもそうです!!

解決策

1.Gemfileの変更の時

bundle install --path vendor/bundle --without test development

2.CSS/JavaScript/画像の変更をした時

bundle exec rails assets:precompile RAILS_ENV=production

3.マイグレーションファイルの変更/追加をした時

bundle exec rails db:migrate RAILS_ENV=production

これをしてから再起動で確認!!!!!

反映させるために必須
kill $(cat tmp/pids/puma.pid)
rails s -e production

補足

本番環境でデータベースをリセットしたい場合

[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

Discussion