我有一个项目,其中有一个基本docker-compose.yml
文件,然后有 2 个文件 - 每个文件用于一个环境docker-compose.dev.yml
和docker-compose.prod.yml
.
docker-compose.yml
version: "2"
services:
app:
build:
context: .
depends_on:
- redis
- selenium
networks:
- richy
redis:
image: redis:3.2
container_name: redis
networks:
- richy
selenium:
image: selenium/standalone-chrome
container_name: selenium
networks:
- richy
networks:
richy:
driver: bridge
docker-compose.dev.yml
version: "2"
services:
app:
build:
args:
env: dev
image: richy_image:dev-latest
container_name: richy-dev
volumes:
- .:/var/www/richy
ports:
- 9000:80
environment:
- ENV=dev
docker-compose.prod.yml
version: "2"
services:
app:
build:
args:
env: prod
image: richy_image:prod-latest
container_name: richy-prod
volumes:
- /home/grafa/workspace/prichy/richy/db.sqlite3:/var/www/richy/richy/db.sqlite3
ports:
- 9001:80
environment:
- ENV=prod
我运行我的开发/生产环境 docker-compose -f docker-compose.yml -f docker-compose.(dev|prod).yml up
问题是我无法在那里并排运行两个容器,尽管我能够像一个月前那样并且几乎没有变化。每次我运行例如 dev 环境并且我为 prod 环境生成 docker-compose 时,docker 都会吐出这个:
redis is up-to-date
selenium is up-to-date
Recreating richy-dev
这很奇怪,因为它为什么要在我启动 Richy-prod 时重新创建 Richy-dev 容器。
也许我的配置文件中存在冲突。你们能帮帮我吗?
谢谢你。
基本上要区分两个环境的容器名称,您需要明确定义项目名称。否则,它会根据文件夹名称使用名称。
您可以为此使用 -p 或 COMPOSE_PROJECT_NAME 环境变量。
取自:https : //github.com/docker/compose/issues/2982#issuecomment-186835033
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句