我有一个多容器应用程序运行与的容器。只要在Container选项卡下提供了Docker (预览)配置,所有这些都可以正常工作。
目前,我正在使用Azure DevOps为特定容器创建构建,然后使用containers下的连续部署选项(在Azure中)从ACR中提取最新部署的容器映像。这也很好。我可以运行单个容器的构建,并且只部署特定的容器,而不会影响web应用程序。(每个容器都是一个单独的项目,并且只有一个Dockerfile,而不需要docker-组合)
但是,当我使用(Version4.*)从Azure DevOp中创建一个版本时,Azure Portal中的Docker (预览)配置将被完全删除,它默认为单一容器,应用程序中断。Docker组合配置是必要的,因为它使主容器知道其他容器。
我正在使用Azure应用服务部署的版本4.*。我想使用Azure DevOps的发布特性,因为它提供了更多的控制。
我是否可以从Azure App Service Deploy version 4中指定坞-组合多容器配置,以便App Service知道多容器配置,而不删除Docker Compose中的多容器配置(预览)
谢谢你,卡兰
发布于 2020-05-17 19:45:00
将Azure App Service deploy
任务替换为Release
管道中的Azure Web App for Containers
任务。有多个映像和一个配置文件的参数(Docker-Compose.yml)。
发布于 2020-09-30 12:01:40
正如戴夫提到的,使用AzureWebAppContainer任务是可能的,但是文档没有提到有关多容器部署的选项。
为了发现任务参数,我不得不深入研究该任务的源代码。
我将总结我的设置,给你一个如何使用它的想法。我有一个用YAML定义的多级管道。有两个阶段,第一阶段构建和发布Docker映像,第二阶段更新应用程序服务。
第一阶段还生成一个工件,即用于为容器应用程序服务配置应用服务的docker-compose.yml
文件。在我的存储库中,我有一个这个文件的模板。在管道执行期间,在此模板中替换对接者映像的标记(例如使用envsubst或sed)。然后,生成的docker-compose.yml
文件作为工件发布。
- task: PublishBuildArtifacts@1
displayName: "Publish artifact"
inputs:
pathToPublish: $(Build.SourcesDirectory)/pipelines/assets/docker-compose.yml
artifactName: yml
在管道的第二阶段,工件被下载并用于为容器配置Web。在下面的示例中,AzureWebAppContainer
是部署作业的一个步骤。
- 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
生成的docker-compose.yml
存储为工件,您可以在以后查阅它。
https://stackoverflow.com/questions/54670525
复制相似问题