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

Push to docker repository fail on AzurePipelines

任务 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 管道成功验证了它。

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

The push refers to repository [docker.io/library/azuretp]

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


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

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

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

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