【发布时间】:2023-03-03 05:55:29
【问题描述】:
我是 docker 新手,想了解如何处理映像/容器中的环境变量以及如何配置 CI/CD 管道。 首先,在深入了解命令等之前,我需要了解全局。我在互联网上搜索了很多,但在大多数情况下,我找到了如何创建、构建、发布图像的详细命令。
我有一个 .net 核心网络应用程序。众所周知,每个环境都有 appsettings.json 文件,例如 appsettings.development.json 或 appsettings.production.json。
在构建过程中,您可以提供环境信息,以便 .net 可以使用指定的环境变量(如连接字符串)构建应用程序。
我可以在 de Dockerfile 中定义相同的步骤,并将环境作为参数或定义为变量。这部分工作正常。
我的问题是,我是否必须为我的所有环境创建单独的图像?如果不是,我如何创建 1 个图像并使用它来创建一个容器并将其用于我的所有环境?最佳做法是什么?
【问题讨论】:
-
"我的问题是,我是否必须为我的所有环境创建单独的图像?" - 不,绝对不是。整个想法是通过环境变量配置应用程序。这是3rd factor of a 12factor app (
12factor.net)。 -
在构建期间您可以提供环境信息 - 您描述的是运行时行为,而不是构建行为。
-
您可以根据自己的需要动态修改appsettings,类似于本文中的做法:stackoverflow.com/questions/41349007/…
标签: docker asp.net-core environment-variables cicd