首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Daisy链码头在文档化依赖项上创建文件

Daisy链码头在文档化依赖项上创建文件
EN

Stack Overflow用户
提问于 2021-01-29 17:51:58
回答 1查看 229关注 0票数 0

我有一个web应用程序( single ),它是由单个web服务支持的。这个web服务反过来与几个不同的数据库以及下游/后续web服务进行通信。这些web服务通常都有自己的数据库或第三方支持其背后的web服务。

例如:

代码语言:javascript
运行
复制
my-web-app -->
  my-main-web-service -->
    psql-db
    billing-web-service -->
      stripe
      redis-db
    fulfillment-web-service -->
      3rd-party-logistics-service
    user-service -->
      mongo-db
  • 这个web应用程序只与它自己的“主”web服务对话。
  • 这个“主”web服务与它自己的PSQL和我的计费、履行和用户服务进行对话。
  • 我的计费服务与Stripe和它自己的Redis DB对话
  • 我的履行服务与第三方履行/后勤合作伙伴交谈
  • 我的用户服务与它自己的MongoDB对话

所有这些应用程序、服务和数据库都是容器化的(Docker),应用程序和所有四个服务都存在于它们自己的独立项目/回购中。

在本地,我有一个docker-compose.yml文件,它作为一组Docker容器运行上面描述的所有内容。

但是,我也希望能够一次作为一个独立容器(加上它的支持资源/数据库)运行其中的一个服务。

理想情况下,应该有一种方法可以将“雏菊链”码头组合成文件,以便:

  • 用于计费Web服务的Docker组合文件为自己及其Redis DB定义了一个容器
  • Docker为实现服务编写文件为自己定义了一个容器
  • 用于用户服务的Docker组合文件为自己定义了一个容器,并定义了它的Mongo
  • 主Web的Docker文件为自己定义了一个容器,它的PSQL ,并以某种方式调用了上述三个(3)服务以及的Docker文件
  • Web的Docker文件为自己定义了一个容器,以某种方式调用了主要Web 的Docker文件

如果能够做到这一点,我就不会在所有这些Docker组合文件中拥有重复的容器(“服务”)配置,而且我可以运行我想要的任何Docker组合,它将触发所有正确的服务。

如果我只想运行计费服务及其Redis,我只需要在计费服务内部运行docker-compose [OPTIONS] up,只有这两个组件才能运行。

但是,如果我想在本地运行主Web,那么在其Docker文件上运行docker-compose [OPTIONS] up将首先(以递归方式)为计费、实现和用户服务运行Docker,然后启动它自己的PSQL容器,最后启动主Web容器(一旦所有支持服务都启动并运行)。

网络应用程序也是如此。

可以由Docker或Docker组成吗?的想法是让每个组件(应用程序、服务等)定义自己的Docker组合服务(容器)集,但是要组织依赖项,如果一个组件/项目/回购需要另一个组件/项目/回购,它几乎会将其Docker组合配置“导入”到自己的组件中,并首先运行它。

EN

回答 1

Stack Overflow用户

发布于 2021-11-24 10:45:47

您的里程可能会因您特别想到的不同而有所不同,但是您可以在调用docker-compose时指定多个组合文件。

docker-compose -f dc-base.yml -f dc-service1.yml -f dc-service2.yml

因此,我猜您在运行docker组合时需要自己做正确的链接,但是可以使用不同的文件将其拆分为逻辑单元。

请参阅码头工人撰写文件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65959411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档