##前書き
プログラミングをしていて最も見たくないエラーに遭遇してしまった。
初学者の自分にとってポートフォリオが公開できないことはすなわち死に直結するからである。
少しの間デプロイせずに開発していたところ自動デプロイのやり方を忘れてしまいエラーになった。
##前提
・ローカルでは問題なく動いている
・ローカル→GiuHubへのpushのし忘れはない(mergeまで確認)
・GitHubからEC2への反映(git pull origin master)のし忘れはない
・EC2サーバー側でエラーログの内容を確認し、原因を探す
・Nginxは正しく起動しているか
・EC2サーバー側の環境変数は正しく設定できているか
・EC2インスタンスの再起動を行ってみる
##結論
ただの勘違い。ローカルでやるべき
bundle exec cap production deploy
ローカル開発環境のディレクトリで実行する
これだけで自動デプロイが完了した。
そもそもbundle exec cap production deployは自動デプロイを実行するコマンドなのだが何を思ったのかEC2ターミナルで行っていた。
開発環境の変更データを本番に反映するコマンドなのでEC2ターミナルで行っても反映されるはずがないのだ。なぜなら本番環境だから。こんな感じで怒られます↓
[ec2-user@ip-000-00-00-00 ~]$ bundle exec cap production deploy
Could not locate Gemfile or .bundle/ directory
##終わりに
そんなとこでつまづくなよ、、って言われそうですがこの経験が実務で活きると信じて今日も頑張ります。