Azure devops Azure应用程序服务部署版本(Azure DevOps)覆盖Azure门户中的多容器Docker Compose(预览)设置

Azure devops Azure应用程序服务部署版本(Azure DevOps)覆盖Azure门户中的多容器Docker Compose(预览)设置,azure-devops,azure-web-app-service,azure-web-app-for-containers,Azure Devops,Azure Web App Service,Azure Web App For Containers,我有一个多容器应用程序运行应用程序服务-容器Web应用程序。只要在容器设置选项卡下提供Docker Compose(预览)配置,这一切都可以正常工作 目前,我正在使用Azure DevOps为特定容器创建构建,然后使用容器设置下的连续部署选项(在Azure Portal中)从ACR提取最新部署的容器映像。这也很好。我可以为单个容器运行构建,并且只部署特定容器而不影响web应用程序。(每个容器都是一个单独的项目,只有一个docker文件,不需要docker compose) 但是,当我使用Azur

我有一个多容器应用程序运行应用程序服务-容器Web应用程序。只要在容器设置选项卡下提供Docker Compose(预览)配置,这一切都可以正常工作

目前,我正在使用Azure DevOps为特定容器创建构建,然后使用容器设置下的连续部署选项(在Azure Portal中)从ACR提取最新部署的容器映像。这也很好。我可以为单个容器运行构建,并且只部署特定容器而不影响web应用程序。(每个容器都是一个单独的项目,只有一个docker文件,不需要docker compose)

但是,当我使用Azure应用程序服务部署(版本4.*)从Azure DevOp创建一个版本时,Azure Portal中的Docker Compose(预览)配置将完全消失,它默认为单个容器,应用程序将中断。需要Docker Compose配置,因为它使主容器知道其他容器

我正在使用Azure应用程序服务部署的4.*版。我想使用Azure DevOps的发布功能,因为它提供了更多的控制

是否有一种方法可以从Azure App Service Deploy version 4中指定docker compose多容器配置,以便应用程序服务知道多容器配置,而不清除docker compose中的多容器配置(预览)

谢谢,
Karan

发行版
管道中的
Azure应用程序服务部署
任务替换为
Azure Web App for Containers
任务。有多个映像和一个配置文件(Docker Compose.yml)的参数。

如前所述,使用任务可以实现这一点,但是文档中没有提到有关多容器部署的选项

我必须深入研究该任务的源代码以发现任务参数

我将总结我的设置,让您了解如何使用它。我在YAML中定义了一个多级管道。分为两个阶段,第一阶段构建并发布Docker图像,第二阶段更新Web App for Containers应用程序服务

第一阶段还生成一个工件,即
docker compose.yml
文件,用于为容器应用程序服务配置Web应用程序。在我的存储库中,我有一个该文件的模板。在管道执行过程中,docker图像的标记在此模板中被替换(例如,使用envsubt或sed)。然后,生成的
docker compose.yml
文件将作为工件发布

- task: PublishBuildArtifacts@1
  displayName: "Publish artifact"
  inputs:
    pathToPublish: $(Build.SourcesDirectory)/pipelines/assets/docker-compose.yml
    artifactName: yml
在管道的第二阶段,工件被下载并用于为容器配置Web应用程序。在下面的示例中,
AzureWebAppContainer

-任务:AzureWebAppContainer@1
displayName:“容器的Azure Web应用”
投入:
azureSubscription:“”
应用程序名:“”
多容器配置文件:$(System.ArtifactsDirectory)/yml/docker-compose.yml

生成的
docker compose.yml
存储为工件,您可以随时在以后查阅。

您是否找到了解决方案?应用程序服务部署擦除应用程序服务上的项目时出现类似问题。否,我未找到解决方案。这是一个概念证明,我们没有在这之后继续。。。
- task: AzureWebAppContainer@1
  displayName: 'Azure Web App for Containers'
  inputs:
    azureSubscription: '<YOUR_SUBSCRIPTION>'
    appName: '<YOUR_WEB_APP_FOR_CONTAINERS>'
    multicontainerConfigFile: $(System.ArtifactsDirectory)/yml/docker-compose.yml