0

我正在尝试构建一个 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 容器注册表?

4

0 回答 0