尝试在azure devops CICD中构建映像时出现docker错误
无法在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:
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
这是否存在于您当前的目录中?为发布文件检查您当前的工作状态。