You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CircleCI中从Azure容器注册表拉取镜像?

在CircleCI中从私有Azure容器注册表(ACR)拉取自定义镜像的配置方法

你可以通过两种方式实现CircleCI与私有Azure ACR的认证并拉取镜像,以下是具体配置步骤:

方法一:使用CircleCI Azure ACR Orb(推荐)

虽然Azure ACR Orb主打镜像构建部署功能,但它内置了ACR登录命令,足以满足拉取镜像的需求。

步骤1:配置CircleCI环境变量

在你的CircleCI项目设置中添加以下环境变量:

  • AZURE_CLIENT_ID:Azure服务主体的客户端ID
  • AZURE_CLIENT_SECRET:Azure服务主体的客户端密钥
  • AZURE_TENANT_ID:Azure租户ID
  • AZURE_ACR_NAME:你的ACR注册表名称

步骤2:编写config.yml配置

在.circleci/config.yml中添加如下工作流步骤:

version: 2.1

orbs:
  azure-acr: circleci/azure-acr@x.y.z  # 替换为该Orb的最新版本号

jobs:
  pull-acr-image:
    docker:
      - image: cimg/base:stable  # 自带Docker的CircleCI基础镜像
    steps:
      - azure-acr/login:
          azure-client-id: $AZURE_CLIENT_ID
          azure-client-secret: $AZURE_CLIENT_SECRET
          azure-tenant-id: $AZURE_TENANT_ID
          registry-name: $AZURE_ACR_NAME
      - run:
          name: 拉取自定义镜像
          command: docker pull $AZURE_ACR_NAME.azurecr.io/your-image:tag  # 替换为你的镜像路径和标签

workflows:
  pull-from-acr:
    jobs:
      - pull-acr-image

方法二:手动执行登录命令(无需Orb)

如果不想依赖Orb,可以直接通过docker login或podman login完成认证,和你提到的GitHub Action逻辑一致。

步骤1:配置CircleCI环境变量

和方法一一致,需配置AZURE_CLIENT_ID、AZURE_CLIENT_SECRET、AZURE_TENANT_ID、AZURE_ACR_NAME

步骤2:编写config.yml配置

version: 2.1

jobs:
  pull-acr-image:
    docker:
      - image: cimg/base:stable
    steps:
      - run:
          name: 登录Azure ACR
          command: |
            ACR_LOGIN_SERVER=$AZURE_ACR_NAME.azurecr.io
            docker login $ACR_LOGIN_SERVER -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET
      - run:
          name: 拉取自定义镜像
          command: docker pull $AZURE_ACR_NAME.azurecr.io/your-image:tag  # 替换为你的镜像路径和标签

      # 若使用Podman,可替换上述Docker命令为以下内容:
      # - run:
      #     name: 登录Azure ACR(Podman)
      #     command: |
      #       ACR_LOGIN_SERVER=$AZURE_ACR_NAME.azurecr.io
      #       podman login $ACR_LOGIN_SERVER -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET
      # - run:
      #     name: 拉取自定义镜像(Podman)
      #     command: podman pull $AZURE_ACR_NAME.azurecr.io/your-image:tag

workflows:
  pull-from-acr:
    jobs:
      - pull-acr-image

注意事项

  • 确保你的Azure服务主体拥有ACR的AcrPull角色权限,否则无法拉取镜像
  • 若使用Podman,需确保CircleCI运行环境已安装Podman(可选择预装Podman的基础镜像)

内容的提问来源于stack exchange,提问作者AnonymousDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 18:35:20