【问题标题】:DevOps and environment variables with Docker images and containersDocker 镜像和容器的 DevOps 和环境变量
【发布时间】: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


【解决方案1】:

我希望我正确理解了这个问题。如果环境是相同的框架,那么没有。在每个项目中,为 Docker 导入必要的文件,然后更新项目的 docker-compose.yml - 然后它将为该项目创建一个映像。使用 Docker Desktop(如果您更喜欢 CLI),您可以启动和停止容器。

【讨论】:

  • 您好,感谢您的回答,您能给我提供更多信息吗?我是否必须创建/使用 docker-compose.yml 文件?或者你有一个简单教程的链接吗?
  • @user7383193 如果只运行一个容器,则不需要使用 Compose 进行部署
猜你喜欢
  • 1970-01-01
  • 2016-02-06
  • 2019-10-29
  • 2019-08-12
  • 1970-01-01
  • 2019-06-23
  • 2023-03-25
  • 2017-08-26
  • 1970-01-01
相关资源
最近更新 更多