やりたかったこと
以下の手順でDocker環境で開発を行なっているRailsプロジェクトの本番環境を構築
# Dockerイメージを作成
$ docker build -t リポジトリ名 . -f Dockerfile-prod --build-arg RAILS_MASTER_KEY=xxxxxxxxxxxxxxx
# リポジトリにイメージをプッシュできるようにタグ付け
$ docker tag リポジトリ名:latest アカウント番号.dkr.ecr.ap-northeast-1.amazonaws.com/リポジトリ名:latest
# リポジトリにプッシュ
$ docker push アカウント番号.dkr.ecr.ap-northeast-1.amazonaws.com/リポジトリ名:latest
エラー発生
しかし、ECSのタスクのログを見ると以下のエラーが発生し上手く立ち上がらない。
=> Booting Puma
=> Rails 5.2.4.2 application starting in development
=> Run `rails server -h` for more startup options
A server is already running. Check /tmp/pids/server.pid
Exiting
まだ立ち上げておらずdb:migrate
もしていないのに上記のエラーが出るのは不自然なので、
Dockerファイルなど設定を色々見直し。
##原因
ローカル環境のdockerが立ち上がっていたままプッシュしていた。
そのため、ローカルのserver.pidもプッシュしておりエラーが発生していた。
##対処内容
docker-compose down
でローカルのDockerを落としたあと、念の為下記のディレクトリのファイルが消えているか確認。
/Users/ユーザー名/プロジェクト名/tmp/pids/server.pid
消えていたら再プッシュして、エラーを吐かずに動いていれば完了。