docker - 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
解决方案
您误解了build和image指令一起使用时的工作方式。
解释文档,
https://docs.docker.com/compose/compose-file/compose-file-v3/#build
如果您指定图像和构建,则 Compose 使用图像指令的值命名构建的图像。
Compose 将构建两个图像,它们的名称相同。只有一个人能活下来。我很惊讶你的应用程序完全启动了!
为每个服务的图像指令提供不同的名称,或者完全省略它。
推荐阅读
- php - phpmailer 配置
- design-patterns - 某些设计模式之间的命名约定有区别吗?
- android - 广告系列广告(自家广告)
- php - 在 WooCommerce 中分离注册和登录页面
- reactjs - 设置环境Webpack已初始化时的React js问题
- spring - grails spring安全核心插件不起作用
- data-vault - Datavault:如何获取外键关系的哈希(填充链接表)
- c# - 在 UWP 中为资源字典构建操作
- java - 随机搜索到 lambda 表达式
- javascript - 在 ChartJS 中发布数据时的 JSON 循环对象值