首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Azure Devops管道ACR部署到Web应用容器

Azure Devops管道ACR部署到Web应用容器
EN

Stack Overflow用户
提问于 2020-07-17 23:35:46
回答 2查看 991关注 0票数 0

我有一个奇怪的问题,可能是我漏掉了什么。web应用程序被创建为具有默认设置(Quickstart)的容器,我正在使用Azure容器注册表推送我的docker映像。我有登录到ACR的管道,构建和推送图像,然后将图像部署到web应用程序。所有这些任务都是成功的。但当我在azure门户中打开webapp时,图像源被设置为docker hub,而不是Azure Container registry.The的完整图像名称和标签。有什么建议我遗漏了什么吗?

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

代码语言:javascript
运行
复制
          - 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)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-18 03:11:29

使用CLI创建应用服务:

代码语言:javascript
运行
复制
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

这是用于公共镜像的,但是根据documentation,如果你想使用私有镜像,你还必须为你的网络应用配置注册表凭证,如果这不是Docker注册表,你必须提供-docker-registry-server-url

代码语言:javascript
运行
复制
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>
票数 1
EN

Stack Overflow用户

发布于 2020-07-18 04:16:06

TLDR:您需要在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-web-app

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

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

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

附注:如果您选择持续部署,您也可以让您的webapp在容器注册表中更新某个标签时自动拉取该标签。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62957270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档