如何在 Azure Devops 发布定义中的 Dockerized Web 应用程序中设置环境变量
How to set environment variables in Dockerized web app in Azure Devops release definition
我目前在 Azure DevOps 中有一个构建管道,它使用 Angular 网络应用程序构建 docker 图像并将其推送到 Azure 容器注册表。我还有一个发布管道,用于将该 docker 图像部署到我的开发环境的 Azure 应用服务。 DEV 的环境变量目前硬编码在配置文件中。
我想设置发布管道,以便它可以使用相同的映像部署到 DEV、TST 和 PRD 环境。对于本地应用程序,我通常只使用构建工件中的标记化变量获取配置文件,并使用 ADO 发布任务将标记替换为环境特定变量。我不认为我可以在这里这样做,因为配置文件现在在构建管道期间与 Docker 图像一起被烘焙。关于通常如何处理的任何想法?
对于这个问题,是的,无法修改打包到 docker 映像中的配置文件。作为解决方法,我们经常创建多个配置文件,然后将它们打包到一个图像中。在deploy的时候,它的逻辑是select根据不同的部署环境对应的config文件。
如果您不想创建多个配置文件,另一种解决方法是 运行 并行构建作业,它传入了不同的配置变量。然后这些并行构建可以生成多个不同的图像。然后将它们放在一个文件夹中,在部署的时候,select根据不同的环境对应的镜像。这种方法只需要一个配置文件。但它的缺点是,如果图像非常大,存储这些图像会花费更多space和时间。
应用服务在托管 Windows 容器时具有的一项很酷的功能是应用服务中定义的应用设置和连接字符串将自动注入到 Windows 容器中。
此外,我们支持指定 KeyVault 引用,因此 App Service 中的 AppSetting 可以指向 KeyVault,平台将在启动容器之前负责从 KeyVault 中提取秘密,然后将其注入。
如果您使用 ASP.NET,应用程序设置和 ConnectionStrings 将填充在 System.Configuration.ConfigurationManager
更多信息:
https://docs.microsoft.com/en-us/azure/app-service/app-service-web-get-started-windows-container
我目前在 Azure DevOps 中有一个构建管道,它使用 Angular 网络应用程序构建 docker 图像并将其推送到 Azure 容器注册表。我还有一个发布管道,用于将该 docker 图像部署到我的开发环境的 Azure 应用服务。 DEV 的环境变量目前硬编码在配置文件中。
我想设置发布管道,以便它可以使用相同的映像部署到 DEV、TST 和 PRD 环境。对于本地应用程序,我通常只使用构建工件中的标记化变量获取配置文件,并使用 ADO 发布任务将标记替换为环境特定变量。我不认为我可以在这里这样做,因为配置文件现在在构建管道期间与 Docker 图像一起被烘焙。关于通常如何处理的任何想法?
对于这个问题,是的,无法修改打包到 docker 映像中的配置文件。作为解决方法,我们经常创建多个配置文件,然后将它们打包到一个图像中。在deploy的时候,它的逻辑是select根据不同的部署环境对应的config文件。
如果您不想创建多个配置文件,另一种解决方法是 运行 并行构建作业,它传入了不同的配置变量。然后这些并行构建可以生成多个不同的图像。然后将它们放在一个文件夹中,在部署的时候,select根据不同的环境对应的镜像。这种方法只需要一个配置文件。但它的缺点是,如果图像非常大,存储这些图像会花费更多space和时间。
应用服务在托管 Windows 容器时具有的一项很酷的功能是应用服务中定义的应用设置和连接字符串将自动注入到 Windows 容器中。
此外,我们支持指定 KeyVault 引用,因此 App Service 中的 AppSetting 可以指向 KeyVault,平台将在启动容器之前负责从 KeyVault 中提取秘密,然后将其注入。
如果您使用 ASP.NET,应用程序设置和 ConnectionStrings 将填充在 System.Configuration.ConfigurationManager
更多信息: https://docs.microsoft.com/en-us/azure/app-service/app-service-web-get-started-windows-container