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

无法在Azure Container Registry中找到已推送镜像的问题咨询

问题描述

我已向Azure Container Registry推送了新的容器镜像,推送操作截图如下:

镜像推送操作截图

但推送完成后我无法在Azure Container Registry中找到该镜像,ACR仓库查询截图如下:
ACR仓库查询截图

以下是本次构建推送操作使用的YAML流水线配置文件内容:

name: Dotnet Code Build and Push
jobs:
- job: Job_1
  displayName: Agent job 1
  pool:
    vmImage: ubuntu-18.04
  steps:
  - checkout: self
  - task: Docker@0
    displayName: Build an image
    inputs:
      azureSubscription: 'sc-***dp'
      azureContainerRegistry:
      loginServer: *****aksacr.azurecr.io
      id: "/subscriptions/4f76bb2f-c521-45d1-b311-b87bf**747ff/resourceGroups/eus-***dp-rg/providers/Microsoft.ContainerRegistry/registries/*****aksacr"
      imageName: ***dpacr.azurecr.io/ims-***dp/$(Build.Repository.Name):$(Build.BuildId)
  - task: Docker@2
    displayName: Login to ACR
    inputs:
      command: login
      containerRegistry:'sc-***dp'
  - task: Docker@2
    displayName: Push an image
    inputs:
      azureSubscription: 'sc-***dp'
      repository: ims-***dp
      azureContainerRegistry: '{"loginServer":"*****aksacr.azurecr.io", "id" : "/subscriptions/4f76bb2f-c521-45d1-b311-b87bf**747ff/resourceGroups/eus-***dp-rg/providers/Microsoft.ContainerRegistry/registries/*****aksacr"}'
      action: Push an image

问题根因

配置存在4处明确错误,直接导致镜像未被成功推送到目标ACR:

  • 镜像仓库地址不匹配:构建步骤中imageName配置的登录地址是***dpacr.azurecr.io,和目标ACR实际地址*****aksacr.azurecr.io不一致,构建出的镜像标签不属于目标ACR
  • YAML缩进语法错误:Docker@0构建任务中azureContainerRegistry字段值为空,下属的loginServer、id字段没有正确缩进归属到该字段下,任务无法读取ACR配置信息
  • YAML格式错误:Docker@2登录任务中containerRegistry:'sc-***dp'冒号后缺少空格,会触发YAML解析错误,导致登录步骤实际未生效
  • 推送步骤缺少镜像关联:Docker@2推送任务没有指定要推送的镜像标签、Dockerfile路径等核心参数,任务无法定位前序构建出的镜像文件,实际没有执行有效推送操作

修复方案

统一使用官方推荐的Docker@2版本任务完成全流程操作,不要混用已过时的Docker@0任务,修正后的配置如下:

name: Dotnet Code Build and Push
jobs:
- job: Job_1
  displayName: Agent job 1
  pool:
    vmImage: ubuntu-18.04
  steps:
  - checkout: self
  - task: Docker@2
    displayName: Login to ACR
    inputs:
      command: login
      containerRegistry: 'sc-***dp'
  - task: Docker@2
    displayName: Build container image
    inputs:
      command: build
      repository: 'ims-***dp'
      dockerfile: '$(Build.SourcesDirectory)/Dockerfile' # 替换为你的Dockerfile实际相对路径
      tags: '$(Build.BuildId)'
  - task: Docker@2
    displayName: Push image to ACR
    inputs:
      command: push
      repository: 'ims-***dp'
      tags: '$(Build.BuildId)'

校验方式

重新运行流水线后,可通过两点确认推送结果:

  • 查看Push任务的运行日志,确认存在manifest pushed、blob uploaded相关成功日志,无权限、找不到镜像类报错
  • 进入ACR实例的门户页面,在「仓库」分类下找到ims-***dp仓库,确认存在对应$(Build.BuildId)标签的镜像

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 01:01:26