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

Azure DevOps Docker构建任务使用及ACR推送失败求助

Azure DevOps Docker构建推送ACR找不到镜像问题排查

我在Azure DevOps中使用Docker@2任务构建Node.js示例应用的Docker镜像,尝试打标签后推送至Azure ACR,但推送时提示找不到镜像。以下是我的配置片段、构建输出及报错信息,请问遗漏了什么?

现有Docker构建任务配置

task: Docker@2
displayName: Build an image
inputs:
  command: build
  repository: azac/myapp
  Dockerfile: $(Build.SourcesDirectory)/Dockerfile
  tags: latest

构建输出与报错信息

REPOSITORY            TAG         IMAGE ID       CREATED          SIZE
azac/myapp   latest      22ad073063a9   23 seconds ago   133MB
node                  18          37b4077cbd8a   12 days ago      997MB
node                  18-alpine   f520ad35ba68   12 days ago      175MB
moby/buildkit         latest      477ce8a5e273   2 weeks ago      168MB
node                  14          cedb9f0d0498   2 weeks ago      912MB
node                  16          9e98bbbbe8e1   2 weeks ago      910MB
ubuntu                20.04       61c45d0e9798   2 weeks ago      72.8MB
buildpack-deps        buster      dd092f9559e9   2 weeks ago      803MB
buildpack-deps        bullseye    7f6175124be9   2 weeks ago      834MB
ubuntu                22.04       74f2314a03de   2 weeks ago      77.8MB
debian                10          f03c282363a3   2 weeks ago      114MB
debian                11          72b624312240   2 weeks ago      124MB
ubuntu                18.04       b89fba62bc15   2 weeks ago      63.1MB
node                  16-alpine   fa7e19c4371c   3 weeks ago      117MB
node                  14-alpine   4802e63f08a5   4 weeks ago      119MB
alpine                3.14        6dff1269bc79   5 weeks ago      5.61MB
alpine                3.15        5ce65d7b0fde   5 weeks ago      5.59MB
alpine                3.16        dfd21b5a31f5   5 weeks ago      5.54MB
Login Succeeded
Error response from daemon: No such image: myapp:latest
The push refers to repository [azac.azurecr.io/myapp]
An image does not exist locally with the tag: azac.azurecr.io/myapp

参考的AzureCLI推送任务配置

task: AzureCLI@2
inputs:
  azureSubscription: 'azdo Service Connetion'
  scriptType: 'bash'
  scriptLocation: 'inlineScript'
  inlineScript: |
    docker images
    az acr login --name azac
    docker tag   myapp azac.azurecr.io/myapp:latest
    docker push  azac.azurecr.io/myapp:latest

问题原因与解决方法

核心问题

Docker@2任务构建的镜像标签是azac/myapp:latest,但AzureCLI任务中尝试给myapp:latest打标签——本地根本不存在这个无前缀的镜像,因此触发“找不到镜像”的报错。

修复方案1:修正AzureCLI中的标签命令

将docker tag命令里的源镜像名改为构建生成的正确名称:

docker tag azac/myapp:latest azac.azurecr.io/myapp:latest

修复方案2:用Docker@2一步完成构建+推送(更推荐)

直接使用Docker@2任务的buildAndPush命令,无需拆分任务,自动处理登录、构建、打ACR标签、推送全流程,避免标签不一致问题:

task: Docker@2
displayName: Build and push image to ACR
inputs:
  command: buildAndPush
  containerRegistry: '你的Azure ACR服务连接名称'
  repository: myapp
  Dockerfile: $(Build.SourcesDirectory)/Dockerfile
  tags: latest

注:需要提前在Azure DevOps中配置好指向目标ACR的服务连接,任务会自动利用该连接完成登录操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 02:12:14