作为管道的一部分,我正在创建一个新的 Azure 注册表容器,然后构建一个容器并将其推送到其中。
通常要推送到注册表,我只需运行此任务即可。
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
containerRegistry: 'todeleteaksdemoacr'
repository: 'webappdocker'
command: 'buildAndPush'
Dockerfile: 'WebAppDocker/Dockerfile'
tags: 'prod'
这仅在我设置了服务连接时才有效。
但是,就我而言,注册表容器是在我的管道的上一步中创建的。所以我没有可用的服务连接。
当我运行管道时,收到错误“存在资源授权问题:”管道无效。作业Job1:步骤Docker输入containerRegistry引用服务连接来删除找不到的服务连接。服务连接不存在或未被授权使用。有关授权详细信息,请参阅https://aka.ms/yamlauthz。”
明显找不到服务连接,因为容器注册中心不存在。我该如何解决这个问题?还有其他方法推送到容器注册表吗?
我最终这样做了,并且成功了
- task: AzureCLI@2
displayName: 'Login to ACR'
inputs:
azureSubscription: '<sub ID>'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az acr login --name ${{parameters.acr_name}}
docker build -t <conatinername>:prod .
docker push ${{parameters.acr_name}}.azurecr.io/<containername>:prod