Azure Devops:Docker 构建任务映像名称以 ***/ 开头

Sur*_*raj 5 docker azure-devops

我正在 Azure Pipeline yaml 文件中运行 Docker 任务“buildAndPush”,以构建我的存储库映像并推送到 ACR。这个工作非常好,我可以在 docker 和 ACR 中看到我的图像。

不过,我想打破这个任务。我想在docker中构建镜像。我想在本地运行一次 docker 镜像,然后运行 ​​docker 镜像(一个 python 文件)中的测试脚本。只有在测试结果成功后,我才应该将其推送到 ACR。

所以我开始构建任务。

  - task: Docker@2
    inputs:
      containerRegistry: 'mycontainerRegistry'
      repository: 'myrepository'
      command: 'build'
      Dockerfile: '**/Dockerfile'
      tags: $(Build.BuildId) 
Run Code Online (Sandbox Code Playgroud)

这成功地塑造了我的形象。现在我运行 bash 命令来列出我的图像。

- bash: docker image ls

我可以看到我的图像已构建,但它显示为 '***/myrepository' 。这就是问题所在。

我想使用此映像并运行我新建的 docker 映像以确保运行成功完成

- bash: docker run 'myrepository:$(Build.BuildId)'
Run Code Online (Sandbox Code Playgroud)

我得到的错误是找不到仓库。正如我在图像标签中看到的那样,构建 ID 是正确的。我无法使用 docker run ***/myrepository:$(Build.BuildId) 因为它会抛出格式错误的错误。

[错误]“-t,--tag”标志的参数“***/myrepository:7167”无效:参考格式无效

有没有办法解决这个问题。这是我遵循的正确方法吗?

谢谢你的时间!

Lev*_*SFT 6

当您将 docker 构建任务连接到 ACR 时。docker 镜像将以您的注册表 URI 为前缀。in******/myrepository您的加密注册表 URI。

因此,您需要Your_ACR_URI/myrepository:$(Build.BuildId)在 docker run 命令中指定您的映像。请参见下面的示例:

- bash: docker run 'leviacr.azurecr.io/alpinelevi:$(Build.BuildId)'