无法将 docker 映像从 Azure Devops 推送到 AzureContainer Registry

时间:2021-02-10 02:00:25

标签: docker azure-devops azure-pipelines azure-container-registry

Docker 镜像已经创建,很有用

成功构建188e6513fb56 成功标记 satyam-hello:20210210.24

我的 docker push Image 任务不起作用

  • 任务:Docker@2 displayName: '推送容器镜像' 输入: containerRegistry: '$(SubscriptionEndpoint)' #上面创建的ACR服务连接 存储库:'$(acrHostName)' 图像名称:'$(图像名称)' 命令:推 标签:'$(标签)'
    ====== 下面是错误

推送指的是存储库 [.azurecr.io/.azurecr.io] 本地不存在带有标签的图像:.azurecr.io/.azurecr.io ##[错误]本地不存在带有标签的图像:.azurecr.io/.azurecr.io ##[error]进程'/usr/bin/docker'失败,退出代码为1

2 个答案:

答案 0 :(得分:0)

Docker 任务不存在属性 azureSubscriptionEndpoint。见docker task document

如果您使用 Docker 任务将图像推送到 ACR。您需要创建一个 ACR service connection

转到项目设置-->服务连接-->新建服务连接-->Docker Registry-->Azure Container Registry/Others。请参阅下面的屏幕截图。

enter image description here

如上述错误所示,您还需要为 Docker 任务指定 repository 属性。见下例:

- task: Docker@2
  displayName: push
  inputs:
    containerRegistry: ACR-ServiceConnection  #the ACR service connection created above
    repository: MyRepository #the repository in your ACR
    command: push

更新:

docker 任务没有 imageName 参数。如果图像是 satyam-hello:20210210.24。您应该按如下方式配置 docker 任务:

- task: Docker@2
  displayName: push
  inputs:
    containerRegistry: ACR-ServiceConnection #$(SubscriptionEndpoint)
    repository: 'satyam-hello' #$(imageName)
    command: push
    tags: 20210210.24  #$(tags)

答案 1 :(得分:0)

感谢您的帮助! 我已经使用基本身份验证创建了服务连接类型 - Docker Registry

我的问题是: 在将图像推送到 ACR 之前,我是否还需要执行 docker 登录

======

登录 Azure 容器注册表

  • 任务:Docker@2 显示名称:登录 ACR 输入: 命令:登录

containerRegistry: '$(dockerRegistryServiceConnection)' #不确定我必须指定哪个字母数字值。

  • 任务:Docker@2 displayName: '推送容器镜像' 输入: containerRegistry: '$(SubscriptionEndpoint)' #上面创建的ACR服务连接 存储库:'$(acrHostName)' 命令:推 ======