我在 Ruby on Rails 上使用 docker-compose 并遇到了麻烦。
在 docker-compose 中,我使用command并直接foreman.
当通过 Ctrl-c 停止 docker-compose 并通过 重新启动时docker-compose up,Rails 会导致错误A server is already running. Check /www/tmp/pids/server.pid.。
当然,我知道rm tmp/pids/server.pid这是解决方案之一,但是每次这样都很麻烦。
所以,我想要解决这种情况。
我写了Procfile和docker-compose.yml以及Dockerfile(供参考)
过程文件.dev:
app: bundle exec rails s -b 0.0.0.0 -p 3000
webpacker: bin/webpack-dev-server
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml:
version: '3'
services:
web:
build:
context: .
dockerfile: Dockerfile.dev
command: "bundle exec foreman start -f Procfile.dev"
volumes:
- .:/www
ports:
- "3000:3000"
environment:
- DATABASE_HOST=db
- DATABASE_USERNAME=postgres
- DATABASE_PASSWORD="" …Run Code Online (Sandbox Code Playgroud)