在AzurePipelines上推送到Docker存储库失败

时间:2019-11-26 14:40:43

标签: azure azure-devops azure-pipelines azure-pipelines-tasks

任务Docker push无法将映像推送到docker hub。

yml:

steps:
- task: Docker@0
  displayName: 'Push an image'
  inputs:
    containerregistrytype: 'Container Registry'
    dockerRegistryConnection: 'docker hub'
    action: 'Push an image'

日志:

Starting: Push an image
==============================================================================
Task         : Docker
Description  : Build, tag, push, or run Docker images, or run a Docker command
Version      : 0.157.0
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/build/docker
==============================================================================
dbef9fd1-06fb-47eb-af36-bf86b4d44152 exists true
"C:\Program Files\Docker\docker.exe" push azuretp:38
The push refers to repository [docker.io/library/azuretp]
f2369ebe2bed: Preparing
...
537ddf9b819a: Waiting
denied: requested access to the resource is denied
##[error]C:\Program Files\Docker\docker.exe failed with return code: 

连接docker hub是正确的。我只是重新输入凭据,Azure管道成功对其进行了验证。

根据此post,问题似乎与路径有关,但我找不到在此任务中指定我的docker hub名称的方法。

1 个答案:

答案 0 :(得分:0)

  

推送是指存储库[docker.io/library/azuretp]

根据此错误消息行,似乎任务正在将映像推送到Docker集线器的根级别,这是不允许的。


要解决此问题,请将任务从0.*更改为2.*

然后,使用以下格式输入Docker repository page中列出的docker存储库名称:dockerhub_namespace/RepositoryName

enter image description here

enter image description here

对于YAML,请使用以下示例:

steps:
- task: Docker@2
  displayName: push
  inputs:
    containerRegistry: {service connection name}
    repository: {dockerhub_namespace/RepositoryName}
    command: push