azure - 如何在Azure DevOps中使用docker构建任务

标签 azure dockerfile acr

我正在尝试通过 Azure DevOps 构建 Docker 镜像,并使用示例应用程序(Node Js)来构建标记并推送到 azure acr,不幸的是它无法找到镜像

在我的 yaml 配置中,我使用 AZ CLI 任务来标记并推送图像,但是在推送 azure acr 时它失败了。下面是我的 yaml 配置片段,我错过了什么吗?

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

output:
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

我在 stack-overflow Link 上使用了一些引用资料

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@2 任务中,您然后引用myapp:latest

我建议更改您的 Docker@2 任务,将存储库设置为 azac.azurecr.io/myapp,然后更改 AzureCLI@ 的脚本2 任务只需要登录和推送,不需要标签。

关于azure - 如何在Azure DevOps中使用docker构建任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75795537/

相关文章:

docker - JanusGraph 在 Docker 环境中无法与 Cassandra 后端通信

node.js - 在 Docker-Compose 上运行时找不到模块

python - 在 Docker Alpine Linux 3.3 中无法使用 OpenSSL 1.0.2g 和 Python 2.7 出现 "pip install cryptography"

azure - Ansible如何从字典列表中查找字典

azure - 如何处理 Azure 应用服务中长时间运行的作业?

azure - Azure Sql 中的 Active Directory(AD) 身份验证不起作用

azure - 我可以从 Azure 容器注册表中清除所有存储库,而不需要逐一输入所有存储库吗

azure - Helm 3 搜索未显示来自 ACR 的结果

azure - 应用程序洞察 : Profiler Trace Duration messed up

azure - 最大限度地减少 Azure 中的停机时间