docker - 我应该为所有环境的每个微服务映像保留一个 docker 注册表吗?
问题描述
我正在研究基于微服务架构的应用程序。我有
- N个微服务
- 都在码头上
Docker Compose 负责运行和构建。现在项目处于应该部署到以下列出的环境的阶段,
- 发展
- 质量检查/分期
- 前期制作
- 生产
我的问题是我应该如何管理所有微服务的图像
- 它应该是一个微服务和所有环境的一个镜像注册表吗?
- 它应该是所有环境中所有微服务的一个镜像注册表吗?
- 每个环境一个微服务应该是一个镜像注册表吗?
- 它应该是每个环境的所有微服务的一个镜像注册表吗?我想到的云提供是 AWS 和 GCP。
我真的找不到关于这个主题的任何建议,也无法决定我应该如何进行。我请求您对此提供指导。
谢谢 Dheeraj Kumar
解决方案
我会为所有环境使用一个注册表。拉取映像、重新标记映像并将映像推送到新注册表的操作太多了——可能出错的事情太多,而价值太少。
您可能想要做的是有一个单独的开发注册表和另一个“自动化环境”注册表。对于“自动化环境”,我的意思是在 CI/CD 管道中,在开发人员将代码推送到 Git 之后,应该有自动构建作业。这种分离的原因是您可能希望有不同的身份验证要求并将您信任的(例如扫描的)和不信任的分开。
您不需要为每个微服务提供单独的注册表,但您可能希望为每个微服务拥有一个单独的存储库。
推荐阅读
- java - Maven Java Surefire 无法创建测试类
- spring-boot - spring boot管理端点url的集中化
- ms-access - 为 iif 语句制作 SUM 或总计
- javascript - 如何在 res.redirect 上传递 json
- reactjs - Redux Sagas 未使用 redux persist 和 connected-react-router 进入
- python - Selenium Python - 这不是重复的问题..实际上无法正确定位元素
- qt - QT,无法将 QProcess::finished(int,QProcess::ExitStatus) 信号绑定到 lambda
- android - 当设备连接到网络但未通过网站登录访问 Internet 时,如何解决 SSL 握手错误?
- javascript - 响应式菜单快速关闭
- javascript - javascript中的this()是什么?