🦔
デプロイメモ
⭐️ログインまでの流れ
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