docker-compose - 如何在启用 swarm 的情况下使用 traefik 处理两个单独的 docker-compose 文件
问题描述
我有两个不同的 docker-compose 文件,它们具有不同的服务(项目空间),我想在同一个 swarm 上运行,因为我想使用 traefik 作为反向代理,我该怎么做?
解决方案
在部署到 swarm 之前,您必须使用通用镜像注册表和预构建镜像:
第一个撰写文件:
services:
my_service:
build: ./my_service
image: my-registry-host/my_service:latest
...
第二个撰写文件:
services:
my_other_service:
build: ./my_other_service
image: my-registry-host/my_other_service:latest
...
my_service:
image: my-registry-host/my_service:latest
...
traefik:
image: traefik:v2.0
...
当您在第一个文件中构建服务时,它们会上传到您的公共注册表my-registry-host。当您部署第二个文件时,您将看到该映像将从公共注册表中获取,并且堆栈按预期运行。
推荐阅读
- nosql - 我可以通过 Oracle NoSQL 数据库云服务使用 Intellij 进行应用程序开发吗?
- android-layout - 如何在不同行的回收器视图中显示嵌套数组
- reactjs - React-Leaflet - 更新存储在状态中的 Circle 对象,或者优化 Circles 加载速度
- mysql - 如何在 mysql 工作台中导出/导入存储过程以及表
- python - 为什么在类及其对象上为同一属性使用“hasattr”函数时会得到不同的结果?
- javascript - 仅在 ts 中操作 {} 内的内容
- javascript - 如何在JS中删除存储在数组中的输入
- java - 将 SQL 查询迁移到 Spring 规范
- python - 来自 datetime 的 strftime 没有为某些指令打印正确的值
- uri - 在 RDF 中有一个带有片段的 URN 是否有效?