Docker撰写删除另一个容器

问题描述:

我有一个基本docker-compose.yml文件的项目,然后2个文件 - 每个为一个环境docker-compose.dev.ymldocker-compose.prod.ymlDocker撰写删除另一个容器

搬运工-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 

搬运工-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 

搬运工-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

事情是我不能在两个容器并排运行,尽管我能够做到这一点像一个月前和几个变化前。每次我都跑例如开发环境,我产卵泊坞窗,谱写了督促环境搬运工吐出了这一点:

redis is up-to-date 
selenium is up-to-date 
Recreating richy-dev 

这很奇怪,因为它为什么要重新当我开始里希的里希-dev的容器-prod。

也许我的配置文件有冲突。你们能帮我吗?

谢谢。

+0

看起来这可能是因为这两个服务被命名为'app' – Serey

+0

谢谢。我会试一试并报告结果。 – grafa

基本上要区分两个环境的容器名称,您需要明确定义项目名称。否则它会根据文件夹名称获取名称。

您可以使用-p或COMPOSE_PROJECT_NAME环境变量。

摘自:https://github.com/docker/compose/issues/2982#issuecomment-186835033

+1

谢谢。我用整个解决方案写了一篇文章https://medium.com/@n1_/docker-and-your-development-a-production-environments-857067a9bfc0 – grafa