Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试在azure devops CICD中构建映像时出现docker错误_Azure_Docker - Fatal编程技术网

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

尝试在azure devops CICD中构建映像时出现docker错误,azure,docker,Azure,Docker,无法在cicd中生成docker映像,找不到映像的路径 这是我的文件 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:

无法在cicd中生成docker映像,找不到映像的路径

这是我的文件

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


错误很明显
COPY
在生成过程中找不到要复制的文件

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

您可以在Github或上查看此信息

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


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

Dockerfile:

WORKDIR /src
Azure管道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)'

你好,谢谢你的回复。您能更具体地说明我应该如何重写.dockerfile以使其正常工作吗?是否需要从dockerfile中删除arg源?将值传递给args源,或删除源,然后尝试使用
COPY obj/Docker/publish。
我遵从您的建议,但得到一个不同的错误:-我注释掉arg源并替换COPY${source:-./obj/Docker/publish}。by COPY obj/Docker/publish来自守护进程的错误响应:Dockerfile解析错误行12:COPY至少需要两个参数,但只提供了一个。无法确定目的地##[错误]C:\Program Files\Docker\Docker.exe失败,返回代码:1您发布应用程序了吗?
obj/Docker/publish
这是否存在于您当前的目录中?为发布文件检查您当前的工作状态。