我正在使用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"
任务成功完成,但在App Service上的Container Log中查看时,我看到:
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从Release Task粘贴到成功完成Build并收到同样的错误。
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"'
不确定问题出在哪里。
您是否在ACR中设置了访问级别?如果没有,请尝试从here设置一个。我有类似的问题,我尝试设置角色分配,它工作。