尝试在azure devops CICD中构建映像时出现docker错误

时间:2019-09-10 01:59:26

标签: azure docker

无法在cicd中构建docker映像,找不到该映像的路径。

这是我的dockerfile

FROM mcr.microsoft.com/dotnet/framework/aspnet:4.7.2-windowsservercore-ltsc2019

ARG source

WORKDIR /inetpub/wwwroot

COPY ${source:-./obj/Docker/publish} .

#I am choising Azure pipeline agent windows-2019
  

步骤4/4:复制$ {source:-。/ obj / Docker / publish}。

     

复制失败:CreateFile   \?\ C:\ ProgramData \ docker \ tmp \ docker-builder174212468 \ obj \ Docker \ publish:   该系统找不到指定的路径。   [错误] C:\ Program Files \ Docker \ docker.exe失败,返回码:1

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,终于解决了。我正在将新的YAML管道与“ Docker @ 2”任务一起使用。解决方案是指定“ buildContext”属性。我必须与您的Dockerfile中的WorkingDir相同。

Dockerfile:

WORKDIR /src

Azure Pipeline Yaml:

buildContext: 'src/'

全任务:

- task: Docker@2
  displayName: Build and push an image to container registry
  inputs:
    containerRegistry: '$(dockerRegistryServiceConnection)'
    repository: '$(imageRepository)'
    command: 'buildAndPush'
    Dockerfile: 'src/Dockerfile'
    buildContext: 'src/'
    tags: '$(tag)'

答案 1 :(得分:0)

错误非常清楚,COPY找不到在构建期间要复制的文件。

$source变量引用当前目录。如果$ source为空或不存在,则只需使用默认路径obj/Docker/publish

您可以在Github或issue (Is it possible to change default directory (obj/docker/publish) to copy files)上查看此issues-6

  

构建图像时,它会从指定的路径复制内容   在容器内当前目录的source参数中。   如果未指定源参数,则路径中的内容   使用obj / Docker / publish。

understanding-docker-with-visual-studio