将 docker 镜像从 Azure DevOps 管道推送到 Docker Hub

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

我有一个带有 Dockerfile 的 .Net core Web 应用程序。

我正在使用 Azure DevOps 管道构建 docker 映像,并希望将该映像推送到 Docker Hub 上。

但是当我运行管道时,它在推送图像时失败并出现以下错误:

2019-07-25T07:40:39.2332684Z ##[section]Starting: Push an image
2019-07-25T07:40:39.2340807Z ==============================================================================
2019-07-25T07:40:39.2340932Z Task         : Docker
2019-07-25T07:40:39.2341017Z Description  : Build, tag, push, or run Docker images, or run a Docker command
2019-07-25T07:40:39.2341132Z Version      : 0.154.1
2019-07-25T07:40:39.2341206Z Author       : Microsoft Corporation
2019-07-25T07:40:39.2341308Z Help         : https://learn.microsoft.com/azure/devops/pipelines/tasks/build/docker
2019-07-25T07:40:39.2341405Z ==============================================================================
2019-07-25T07:40:39.4058071Z e6868ba4-0951-4724-b13b-58e178dacb79 exists true
2019-07-25T07:40:39.5494209Z [command]/usr/bin/docker push dockerDemo2019:19
2019-07-25T07:40:39.5780069Z The push refers to repository [docker.io/library/dockerDemo2019]
2019-07-25T07:40:40.5429692Z b0f339cf7b16: Preparing
2019-07-25T07:40:40.5430778Z a385a9a129e2: Preparing
2019-07-25T07:40:40.5431098Z 6339615de93e: Preparing
2019-07-25T07:40:40.5431279Z c6c9de941dfa: Preparing
2019-07-25T07:40:40.5431433Z 9c894eb0930b: Preparing
2019-07-25T07:40:40.5431696Z d56055da3352: Preparing
2019-07-25T07:40:40.5431855Z d56055da3352: Waiting
2019-07-25T07:40:42.4737943Z denied: requested access to the resource is denied
2019-07-25T07:40:42.4880225Z ##[error]denied: requested access to the resource is denied
2019-07-25T07:40:42.4932585Z ##[error]/usr/bin/docker failed with return code: 1
2019-07-25T07:40:42.4960825Z ##[section]Finishing: Push an image

我的管道设置:

我已经验证了 Dockerregistry 服务连接,并且它是与 dockerhub 凭证连接的。

docker azure-devops azure-pipelines dockerhub docker-image
3个回答
11
投票

您需要将 Docker 任务版本从

0.*
切换为
2.*

然后您还需要定义 Docker hub 存储库名称:

您还需要在

build
步骤中执行相同的操作 - 切换到
2.*
并定义存储库名称。

顺便说一句 - 在

2.*
版本中,操作名称为
buildAndPush
,它结合了构建和推送任务。


1
投票

我的服务连接是我的案例的问题。我把它搞砸了,因为默认是“其他”。

将注册表类型设置为 DockerHub 并随后设置凭据后,效果很好。

当然,[![https://stackoverflow.com/users/7409220/shayki-abramczyk]建议的步骤也很重要。


0
投票
  1. 确保您已设置 dockerhub 和 az pipelines 的服务连接(转到项目设置 -> 服务连接 -> 新服务连接 -> 选择“Docker 注册表” -> 填写所需的详细信息)以便推送直接从 az-pipelines 到 docker hub 的图像。

  2. 创建服务连接后,开始配置管道并编辑管道-->单击右上角“保存并运行”按钮下的“显示助手”。refer this image

  3. 在这里,搜索“docker Push”。它将显示“Docker”和“Docker compose”-->选择“Docker”check this image-->选择服务连接代替之前为 docker 注册表配置的“容器注册表”-->“容器存储库”这是我们需要以这种格式正确提及“”的地方please check this image。否则您将面临类似“请求访问资源被拒绝”的错误。

希望这会有所帮助!祝您有美好的一天!...谢谢您。

© www.soinside.com 2019 - 2024. All rights reserved.