首页 > 解决方案 > Linux 容器 Azure 应用服务部署的 Azure 发布失败

问题描述

我正在使用 Azure Release 和 Azure App Service Deploy 任务从 Azure Container Registry 部署容器。我定义了一个订阅级别服务连接。容器注册表设置设置为:

Registry or Namespace: <registry>.azurecr.io
Image: rrez/vnext/dev/booking
Tag: latest
Startup command: "dotnet", "Booking.API.dll"

任务成功完成,但在应用服务上的容器日志中查看时,我看到:

2019_02_25_RD00155D9B2488_docker.log:
2019-02-25 22:27:07.101 INFO  - Issuing docker pull: imagename =<registry>.azurecr.io/rrez/vnext/dev/booking:latest
2019-02-25 22:27:07.260 INFO  - Issuing docker pull: imagename =<registry>.azurecr.io/rrez/vnext/dev/booking:latest
2019-02-25 22:27:07.410 INFO  - Issuing docker pull <registry>.azurecr.io/rrez/vnext/dev/booking:latest
2019-02-25 22:27:07.487 ERROR - docker pull returned STDERR>> Error response from daemon: Get https://<registry>.azurecr.io/v2/rrez/vnext/dev/booking/manifests/latest: unauthorized: authentication required

这似乎是 ACR 访问问题,但我希望订阅级别服务连接足够权威。

由于这是 Azure 版本,因此没有可用于添加其他身份验证详细信息的 YAML 配置。

我将发布任务中的 YAML 粘贴到成功完成的构建中并收到相同的错误。

YAML 是:

- task: AzureRmWebAppDeployment@4
  displayName: 'Azure App Service Deploy: P-RREZ-BOOKING-PREPROD'
  inputs:
    ConnectionType: AzureRM
    azureSubscription: 'RightRez.Services SubscriptionSC'
    appType: webAppContainer
    WebAppName: 'P-RREZ-BOOKING-PREPROD'
    deployToSlotOrASE: true
    ResourceGroupName: '<ResourceGroup>-RG'
    DockerNamespace: <registry>.azurecr.io
    DockerRepository: rrez/vnext/dev/booking
    DockerImageTag: latest
    StartupCommand: '"dotnet", "Booking.API.dll"'

不确定问题出在哪里。

标签: azureazure-devopsazure-web-app-service

解决方案


您是否在 ACR 中设置了访问级别?如果没有,请尝试从这里设置一个。我有类似的问题,我尝试设置角色分配并且它有效。


推荐阅读