簡體   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