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

标签 azure docker azure-devops azure-pipelines azure-container-registry

我有一个奇怪的问题,可能是我遗漏了一些东西。 Web 应用程序创建为具有默认设置的容器(快速入门),我使用 Azure 容器注册表来推送我的 docker 镜像。我有一个管道,可以登录 ACR、构建并推送图像,然后将图像部署到 Web 应用程序。所有这些任务都成功了。但是当我进入azure门户中的web应用程序时,图像源设置为docker hub而不是Azure Container注册表。完整的图像名称和标签是ACR的。有什么建议吗?我缺少什么? enter image description here

更新:我已经添加了 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:您需要在 UI 中选择存储库;或通过 ARM 或 AzureCLI 添加凭据。

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

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

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

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

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

关于Azure Devops Pipeline ACR 部署到 Web 应用容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62957270/

相关文章:

java - 作为 Azure DevOps CD/CI 一部分的自动化集成测试

c# - Azure MobileApp 客户端 SDK 在 Xamarin.Forms (Android) 上崩溃

amazon-web-services - 在 AWS Ubuntu EC2 上部署 Dockerized MERN 应用程序。我需要 NGINX 或类似技术吗?

git - 实现 TFS pull 请求

azure - ARM,如何使参数文件依赖于其他参数

build - 创建发布工件目录失败(访问路径 'C:\agent\_work\r1\a\NUL' 被拒绝。)

azure - Dev Fabic 中 Azure Web 角色的静态端口

azure - 通过直接 URL 浏览时,上传到 Azure Blob 存储的图像不可用

docker - 如何将Redis与docker中的哨兵连接?

docker - 无法在 Docker 容器中获取 ASPNETCORE_ENVIRONMENT 变量