👌
docker-compose upした時に「A server is already running」と言われる場合の対処法
問題
docker-compose upした時に「A server is already running. Check /tmp/pids/server.pid」と言われることがあります。
久しぶりにコンテナを立ち上げようとした時にこのエラーが出ると少し萎えるので、対処方法を残しておきます。
原因
無理やりdockerコンテナを止めた時などにpidが残る場合があります。
自分の手順が悪いことがほとんどなので、
docker-compose down
などでしっかり停止するようにすれば発生しません。
対処法
発生してしまった場合の対処法としては、以下の2つがあります。
・docker-compose.ymlでwebサーバーの起動時にpidを削除する
・事前に手元で/tmp/pids/server.pidを削除する
command: /bin/sh -c "rm -f /tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
最初は1つ目の方法で上記のようにしていたのですが、
正常なケースでもpidを削除する処理を書くというのはあまりよろしくないなと思い直しました。
今では当記事のエラーが出た場合は、手元で/tmp/pids/server.pidを削除してから起動するようにしています。
これで焦らずに対処できるようになりました。めでたしめでたし。
Discussion