首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为不同环境创建映像的最佳方式

为不同环境创建映像的最佳方式
EN

Stack Overflow用户
提问于 2021-10-09 19:08:30
回答 3查看 196关注 0票数 0

为不同环境维护映像的最佳方式是什么?为什么?

选项:1为特定环境dev,stg,prod创建diff镜像。我们必须告诉Jenkin job我们正在为哪个环境构建镜像,spring boot将加载特定的配置文件。优点:环境指定图像。

缺点:每个环境都会有不同的镜像,所以我们每次都要构建它。

选项:2构建1镜像,外部化配置文件。在构建映像时,创建一个共享/挂载路径,放置一个适当的配置文件。初始化时加载配置文件。优点:一个镜像可以被所有环境使用。缺点:自定义配置处理。需要两个团队之间的协调。

请让我知道是否有其他选择,以及上述方法或任何其他方法的优缺点。

EN

回答 3

Stack Overflow用户

发布于 2021-10-09 20:09:40

构建一次,部署到任何地方都被认为是持续交付的基本原则(Google it的优点)。因此,我将为所有环境构建相同的映像。在运行镜像时,它需要有一些方法来允许根据环境配置这些配置。

在docker方面,它允许在运行容器时配置环境变量(例如,在docker-compose的情况下参见this )

在spring-boot方面,OS环境变量将override应用程序中的应用程序属性。

票数 2
EN

Stack Overflow用户

发布于 2021-10-09 20:15:50

在设计镜像时,将文件系统和环境拆分为3个部分。

  1. 二进制文件、运行时、库、运行应用程序所需的代码。这属于您的image.
  2. Configurations和秘密,不同用户的镜像会有所不同。它们属于在运行时注入的配置文件和环境变量(作为绑定挂载、docker-compose.yml env vars、k8s配置映射等)。
  3. 数据。它应该作为卷装载,或者装载在使用configuration/secret.

访问的外部数据库中

这与12 factor设计保持一致,并支持可移植性、更容易的测试,以及通过将与CI中测试的内容不同的内容部署到生产环境中而降低风险。

票数 0
EN

Stack Overflow用户

发布于 2021-10-10 12:40:40

您可以分别为每个环境构建docker镜像。

例如:从.env.dev文件中读取dev environment的变量。

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

https://stackoverflow.com/questions/69509793

复制
相关文章

相似问题

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