在Azure DevOps中,您可以动态地为容器注册表创建服务连接吗?

问题描述 投票:0回答:1

作为管道的一部分,我正在创建一个新的 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。”

明显找不到服务连接,因为容器注册中心不存在。我该如何解决这个问题?还有其他方法推送到容器注册表吗?

azure docker azure-devops containers
1个回答
0
投票

我最终这样做了,并且成功了

  - 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
© www.soinside.com 2019 - 2024. All rights reserved.