首页 > 解决方案 > docker-compose 强制服务创建单独的容器,即使图像相同

问题描述

我有 2 个使用相同的服务image:,我能做些什么来强制 docker-compose 生成 2 个单独的容器?

谢谢!

编辑:

完整的码头工人撰写:

    version: "3.5"
    services:
      database:
        container_name: proj-database
        env_file: ../orm/.env.${PROJ_ENV}
        image: postgres
        restart: always
        ports:
         - 5432:5432
        networks:
          - proj
      api:
        image: golang:1.17
        container_name: proj-api
        env_file: ../cryptoModuleAPI/.env.${PROJ_ENV}
        restart: always
        build: ../cryptoModuleAPI/
        links:
          - database:database
        ports:
          - 8080:8080
        volumes:
          - ../cryptoModuleAPI:/proj/api
          - ../orm:/proj/orm
        networks:
          - proj
      admin:
        image: golang:1.17
        container_name: proj-admin
        env_file: ../admin/.env.${PROJ_ENV}
        restart: always
        build: ../admin/
        links:
          - database:database
        ports:
          - 8081:8081
        volumes:
          - ../admin:/proj/admin
          - ../orm:/proj/orm
        networks:
          - proj
    
    networks:
      proj:
        external:
          name: proj

我只是跑docker-compose up

标签: dockerdocker-compose

解决方案


您误解了buildimage指令一起使用时的工作方式。

解释文档,

https://docs.docker.com/compose/compose-file/compose-file-v3/#build

如果您指定图像和构建,则 Compose 使用图像指令的值命名构建的图像。

Compose 将构建两个图像,它们的名称相同。只有一个人能活下来。我很惊讶你的应用程序完全启动了!

为每个服务的图像指令提供不同的名称,或者完全省略它。


推荐阅读