メンチカツ

ロースカツが好きです

Railsのサービス を docker-compose up したら A server is already running. Check /[WORKDIR]/tmp/pids/server.pid.

Railsのサービス を docker-compose up したら A server is already running. Check /[WORKDIR]/tmp/pids/server.pid. が出て困るぞというときがあります。

サービス起動したままホストをシャットダウンとか、へんな落とし方するとpidファイルが残ってしまうようなので、雑に解決します。

# docker-compose.yml

version: '3'
services:
  web:
    build: .
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/app
    ports:
      - "3000:3000"

とか定義しているところの、command 部分を以下のように書き換えます。

    command: /bin/sh -c "rm -f /app/tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"