我正在尝试构建一个 Docker 容器并将其推送到 Azure 容器注册表。为此,我创建了这个azure-pipeline.yml
# Docker
# Build and push an image to Azure Container Registry
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker
trigger:
- main
resources:
- repo: self
variables:
# Container registry service connection established during pipeline creation
dockerRegistryServiceConnection: '...'
imageRepository: 'mycontainer'
containerRegistry: 'azuk.azurecr.io'
dockerfilePath: '$(Build.SourcesDirectory)/dockerfile'
tag: '$(Build.BuildId)'
# Agent VM image name
vmImageName: 'ubuntu-latest'
stages:
- stage: Build
displayName: Build and push stage
jobs:
- job: Build
displayName: Build
pool:
vmImage: $(vmImageName)
steps:
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
command: buildAndPush
repository: $(imageRepository)
dockerfile: $(dockerfilePath)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag)
管道正在工作。现在,我有另一个构建另一个容器的 Azure 管道,但基础是第一个容器。为此,我在第一行的 Dockerfile 中添加了
FROM azuk.azurecr.io/mycontainer
管道启动时,出现错误
***/mycontainer 的清单:未找到最新的:清单未知:未找到标记为“最新”的清单
我找不到告诉 ACR 上次推送是最新版本的方法。我看到很少有帖子使用includeLatestTag
不再存在的属性
- stage: Build
displayName: Build image
jobs:
- job: DockerImage
displayName: Build and push Docker image
steps:
- task: Docker@1
displayName: 'Build the Docker image'
inputs:
containerregistrytype: 'Container Registry'
dockerRegistryEndpoint: 'Docker Hub'
command: 'Build an image'
dockerFile: '**/Dockerfile'
imageName: '$(ImageName)'
includeLatestTag: true
useDefaultContext: false
buildContext: '.'
如何将标记添加latest
到 Docker 容器并通过 Azure DevOps 管道将其推送到 Azure 容器注册表?