如何将 Azure DevOps 构建工件复制到同一管道中的 Docker 图像构建?

How to copy an Azure DevOps build artifact to a Docker image build in the same pipeline?

从之前的 stage 下载工件后,在 Azure DevOps 管道中,如下所示:

- download: 'current'
    artifact: my_artifact

我想在这个 Docker build taskDockerfile 中重复使用它:

- task: Docker@2
  displayName: Build
  inputs:
    command: build
    containerRegistry: myConnection
    repository: myRepository

像这样:

COPY *.whl /myDir/

COPY命令之后目标目录仍然是空的。工件中的文件在哪里以及如何将它们复制到 Dockerfile?

解决方案是将工件从下载位置 ($(Pipeline.Workspace)/my_artifact) 复制到 build 命令 ($(Build.SourcesDirectory)) 的 PATH 目录:

- bash: cp $(Pipeline.Workspace)/my_artifact/*.whl $(Build.SourcesDirectory)

或者使用 CopyFiles 命令:

- task: CopyFiles@2
  inputs:
    sourceFolder: '$(Pipeline.Workspace)/my_artifact'
    contents: '*.whl' 
    targetFolder: $(Build.SourcesDirectory)