繁体   English   中英

Azure Devops Pipeline ACR 部署到 Web 应用程序容器

[英]Azure Devops Pipeline ACR deployment to Web App Container

我有一个奇怪的问题,可能我错过了什么。 web 应用程序创建为具有默认设置(快速入门)的容器,我正在使用 Azure 容器注册表来推送我的 docker 映像。 我有登录到 ACR、构建和推送映像的管道,然后将映像部署到 web 应用程序。 所有这些任务都是成功的。 但是当我进入 azure 门户中的 webapp 时,图像源设置为 docker 集线器,而不是 Azure 容器注册表。 任何建议我错过了什么? 在此处输入图像描述

更新:如果有帮助,我已经添加了 pipeline.yml 文件以供参考。 我正在登录注册表,同时推送 docker 映像,我确认映像已推送到 ACR。

          - task: Docker@2
            displayName: Login to QA Azure Container Registry
            inputs:
              command: login
              containerRegistry: $(azureSubscriptionContainer) #Docker Registry type Service connection
          - task: Docker@2
            displayName: Build and Push
            inputs:
              command: buildAndPush
              repository: $(repository) #custom name of repository in ACR
              tags: $(Build.BuildId)
          - task: AzureRMWebAppDeployment@4
            displayName: Azure App Service Deploy
            inputs:
              appType: webAppContainer
              ConnectedServiceName: $(azureSubscription)    #ARM service connection
              WebAppName: $(webApp)
              DockerNamespace: $(dockerNameSpace) #ACR namespace myacr.azurecr.io
              DockerRepository: $(repository) #custom name of repository in ACR
              DockerImageTag: $(Build.BuildId)

TLDR:您需要 select 在 UI 中的存储库; 或通过 ARM 或 AzureCLI 添加凭据。

https://docs.microsoft.com/en-us/azure/devops/pipelines/targets/webapp-on-container-linux?view=azure-devops&tabs=dotnet-core%2Cyaml#configure-registry-credentials-in-网络应用

您可以像现在一样使用您的部署任务,并非所有开发人员都需要访问 WebApp。 但是,您至少需要为注册表设置一次凭据。 UI 基本上会显示其如何解释底层配置的“最佳猜测”。

https://docs.microsoft.com/en-us/azure/app-service/containers/tutorial-custom-docker-image#configure-registry-credentials-in-web-app

您也可以在每次管道运行时都这样做,但我不建议这样做。

旁注:如果您 select “持续部署”,您还可以让您的 web 应用程序在容器注册表中更新时自动提取某个标签。

使用 CLI 创建应用服务:

az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --deployment-container-image-name <azure-container-registry-name>.azurecr.io/mydockerimage:v1.0.0

这适用于公共图像,但根据文档,如果您想使用私有图像,您还必须为您的 Web 应用程序配置注册表凭据,如果这不是 Docker 注册表,您必须提供-docker-registry-server-url

az webapp config container set --name <app-name> --resource-group myResourceGroup --docker-custom-image-name <azure-container-registry-name>.azurecr.io/mydockerimage:v1.0.0 --docker-registry-server-url https://<azure-container-registry-name>.azurecr.io --docker-registry-server-user <registry-username> --docker-registry-server-password <password>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM