Docker撰写的微服务:相同容器,多个项目

问题描述 投票:1回答:1

与其他一些人一样,我在使用应用程序的微服务架构和按照我想要的方式使用docker-compose时遇到了问题。

简介:我有qazxsw poi微服务项目(让我们称之为qazxsw poi,qazxsw poi和X。每个微服务依赖于相同的容器(让我们称之为project Aproject B

问题:理想情况下,项目project Cdependency Ddependency E都会在其docker-compose.yml文件中同时存在两个依赖项(AB);然而,这成为一个问题,因为docker compose将这些视为重复的容器,而实际上,我想重用它们。这是一个常见的错误消息:

错误:对于A无法为服务创建容器A:b'Conflict。容器名称“/ A”已被容器“sha”使用。您必须删除(或重命名)该容器才能重用该名称。

从我所看到的,C使用D和外部链接。虽然这有效,但它引入了对不同docker-compose yml文件(定义依赖项的文件!)的依赖。

我读过的另一种方法主张在docker中隔离容器组合文件,然后在你想要构建时引用多个文件。同样,虽然这有效,但它肯定不像码头工人那样非常方便。如果我无法找到解决方案,我将采用这种方法。

非单声道回购世界中的其他人(特别是微服务)是否有不同方法的成功?


我一直要求澄清一些例子:

以下是Epeople are recommending that you define the container in one project and reference it的两个不同的组合yml文件:

项目A:

networks

项目B:

project A
docker docker-compose microservices
1个回答
1
投票

有一个叫做project B的功能。来自文档:

链接到此docker-compose.yml之外或甚至在Compose之外的容器,尤其是对于提供共享或公共服务的容器。

拥有多个version: '2' services: dependencyD: image: dependencyD:latest container_name: dependencyD dependencyE: image: dependencyE:latest container_name: dependencyE projectA: image: projectA:latest container_name: projectA depends_on: - dependencyD - dependencyE 文件对于将容器组织成有意义的组也很常见。也许你的场景可以使用多个YAML文件和外部链接。

© www.soinside.com 2019 - 2024. All rights reserved.