如何使用 Azure Pipeline 将 Docker 映像“推送”到 Azure 容器注册表?

Posted

技术标签:

【中文标题】如何使用 Azure Pipeline 将 Docker 映像“推送”到 Azure 容器注册表?【英文标题】:How to use Azure Pipeline to "Push" a docker image to Azure Container Registry? 【发布时间】:2021-12-22 09:27:46 【问题描述】:

这是我的场景/用例:

从 docker hub 拉取一个 docker 镜像并将其推送到 Azure Container Registry。注意,我不必构建 docker 镜像

我正在关注此文档,但有些事情不清楚

https://docs.microsoft.com/en-us/azure/devops/pipelines/ecosystems/containers/push-image?view=azure-devops#azure-container-registry

这是 azure 管道 yaml sn-p

- task: Docker@2
  displayName: Push image
  inputs:
    containerRegistry: |
      $(dockerHub)
    repository: $(imageName)
    command: push
    tags: |
      test1
      test2

我不明白的是,Azure Container Registry 和 Docker Hub 之间的链接在哪里以满足源和目标之间的链接?

有人可以澄清一下并为我提供一个可以工作的 yaml sn-p 来完成我的工作吗?

谢谢!

【问题讨论】:

你必须先拉取图像。 【参考方案1】:

为什么你需要一个管道?如果您有 ACR,请使用 ACR 任务安排将图像从任何注册表自动导入您的 ACR:

task.yaml

version: v1.1.0
steps:
  - cmd: az acr import --name my_registry --source SOURCE --image IMAGE --force

创建任务:

export REGISTRY_NAME=my_registry
cat task.yaml | \
    az acr task create -n scheduled-import -r $REGISTRY_NAME \
            -f - \
            -c /dev/null \
            --schedule "0 * * * *"

文档:

    ACR Tasks reference: YAML az acr task create

【讨论】:

以上是关于如何使用 Azure Pipeline 将 Docker 映像“推送”到 Azure 容器注册表?的主要内容,如果未能解决你的问题,请参考以下文章

如何组织 azure-pipeline.yaml 文件

如何从 Azure DevOps Pipeline 读取 Azure 文件共享文件

Azure Release Pipeline 的下载结果

在我的 Azure DevOps YAML Pipeline 中,如何将一堆阶段转换为作业矩阵?

如何在 ML Azure Pipeline 中使用环境

如何从 Dacpac for Azure Pipeline CI/CD 中自动排除仅开发表?