docker で rails server が already running になる

docker を使って rails 開発をしていると度々サーバーが起動済みと怒られてしまう。

app_1  | 18:47:12 server.1 | started with pid 28
app_1  | 18:47:12 assets.1 | started with pid 29
app_1  | 18:47:24 server.1 | => Booting Puma
app_1  | 18:47:24 server.1 | => Rails 5.2.0 application starting in development 
app_1  | 18:47:24 server.1 | => Run `rails server -h` for more startup options
app_1  | 18:47:25 server.1 | A server is already running. Check /usr/src/app/tmp/pids/server.pid. 👈これ
app_1  | 18:47:25 server.1 | Exiting
app_1  | 18:47:25 server.1 | exited with code 1
app_1  | 18:47:25 system   | sending SIGTERM to all processes
app_1  | 18:47:25 assets.1 | terminated by SIGTERM

ログを見た感じ server.pid ってのが残ってるせいで起動済みと誤認識されているっぽい。

$ docker-compose run サービス名 rm 上のログで出力されたserver.pid

で削除してあげれば良い。

※ サービスは docker-compose.yml で services: で指定した名称。コンテナともイメージとも違うので注意。