创建Docker UAT/生产映像

创建Docker UAT/生产映像,docker,Docker,只是一个关于为关键环境创建Docker映像的最佳实践的快速问题。正如我们所知,在现实世界中,通常情况下,部署到内部测试的团队/公司与部署到客户机测试环境和生产环境的团队/公司并不相同。出现问题是因为在创建Docker UAT/生产映像(例如与Jenkins)时,所有应用程序配置信息可能不可用。还有一个问题是关于应用程序配置中存储的密码 所以我的问题是,Docker映像应该如何“完全配置”?在我看来,实际上不可能完全配置Docker映像,但必须忽略一些应用程序密码等。但这又有点违背了Docker形

只是一个关于为关键环境创建Docker映像的最佳实践的快速问题。正如我们所知,在现实世界中,通常情况下,部署到内部测试的团队/公司与部署到客户机测试环境和生产环境的团队/公司并不相同。出现问题是因为在创建Docker UAT/生产映像(例如与Jenkins)时,所有应用程序配置信息可能不可用。还有一个问题是关于应用程序配置中存储的密码

所以我的问题是,Docker映像应该如何“完全配置”?在我看来,实际上不可能完全配置Docker映像,但必须忽略一些应用程序密码等。但这又有点违背了Docker形象的目的

Docker映像应如何“完全配置”?在我看来,实际上不可能完全配置Docker映像,但必须忽略一些应用程序密码等。但这又有点违背了Docker形象的目的

在方便性、安全性和灵活性之间总会有权衡。 使用零运行时配置的映像运行起来非常方便,但不会非常灵活,并且会暴露敏感的配置密码。 在运行时获取所有配置的映像非常灵活,不会公开敏感信息,但如果未提供默认值,则使用起来会很不方便。如果用户不知道某些值,他们可能根本无法使用图像

在决定在映像中烘焙什么配置以及在运行时需要什么配置时,密码等敏感信息通常会出现在运行时端。然而,情况并非总是如此。例如,您可能希望使用零运行时配置构建只指向测试环境的测试映像。不管怎样,每个人都可以访问测试环境凭据,零配置对测试人员来说更方便,并且没有人可以意外地针对错误的数据库运行构建

对于凭证以外的配置(例如应用程序属性、日志级别、日志文件位置),组织结构和团队动态可能决定您加入多少配置。在devops环境中,进行更改和构建新形象可能是无痛的。在这种情况下,根据需要烘焙尽可能多的配置是有意义的。如果ops和显影是分开的,则可能需要几天时间对图像进行细微更改。在这种情况下,允许更多的运行时配置是有意义的

回到最初的问题,我个人赞成为除凭据之外的所有内容选择合理的默认值,并且只允许在需要时进行运行时重写(不情愿配置的约定)。运行时配置对于ops来说很方便,但它会使开发团队难以跟踪问题。

重复?