我正在尝试创建一个部署管道,以便将映像部署到Kubernetes集群。此过程的第一步是基于docker文件创建图像。我使用的docker文件是在我添加docker支持时从Visual Studio生成的,并在右键单击docker图像并选择创建它时成功创建了该图像。当我配置Azure管道时,创建docker映像在尝试构建实际解决方案时就会失败。上一步将获取所有源文件,但在docker映像创建中失败
复制失败:stat/var/lib/docker/tmp/docker-builder158012929/DockerTest/DockerTest.csproj:
没有这样的文件或目录
[错误]/usr/bin/docker失败,返回代码:1
以下是从VisualStudio生成的docker文件,azure pipeline阶段引用该文件来创建docker映像
来自mcr.microsoft.com/dotnet/core/runtime:2.2-stretch-slim作为基础
WORKDIR/app
来自mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS
建筑
WORKDIR/src
复制[“DockerTest/DockerTest.csproj”,“DockerTest/”]
运行dotnet还原“DockerTest/DockerTest.csproj”
复制
WORKDIR“/src/DockerTest”
运行dotnet构建“DockerTest.csproj”-c发行版-o/app
从生成为发布
运行dotnet发布“DockerTest.csproj”-c发行版-o/app
以垒为终场
WORKDIR/app
复制--from=publish/app。
入口点[“dotnet”,“DockerTest.dll”]
##[部分]开始:构建容器映像
======================================================================================================任务:Docker说明:生成、标记、推送或运行Docker映像,或
运行Docker命令。任务可以与Docker或Azure容器一起使用
登记处。版本:0.150.6作者:Microsoft Corporation帮助:
[更多信息]https://go.microsoft.com/fwlink/?linkid=848006)
=======================================================================================================[command]/usr/bin/docker build-f
/home/vsts/work/1/s/DockerTest/Dockerfile-t
ihacontainers.azurecr.io/dockertest:6/home/vsts/work/1/s/dockertest
将生成上下文发送到Docker守护进程6.144kB步骤1/15:从
mcr.microsoft.com/dotnet/core/runtime:2.2-stretch-slim作为基础
2.2-stretch-slim:从dotnet/core/runtime 743f2d6c1f65:拉取fs层074da88b8de0:拉取fs层ac831735b47a:拉取
fs层3adcc844418d:拉取fs层3adcc844418d:等待
ac831735b47a:下载完整的743f2d6c1f65:验证校验和
743f2d6c1f65:下载完整的074da88b8de0:验证校验和
074da88b8de0:下载完整的3adcc844418d:验证校验和
zadcc844418d:下载完成743f2d6c1f65:拉取完成
074da88b8de0:拉动组件ac831735b47a:拉动组件3adcc844418d:
获取完整摘要:
sha256:066C31B13B0A20E6155D3BD8A314563C688D2EC31C11D7E551AF5BC2595F30C
状态:已下载的较新图像
mcr.microsoft.com/dotnet/core/runtime:2.2-stretch-slim–>
c0f9ab44ecc1步骤2/15:WORKDIR/app–>在6d1a5f5600dd中运行
拆卸中间容器6d1a5f5600dd—>527fcebeaf1f步骤
3/15:来自mcr.microsoft.com/dotnet/core/sdk:2.2-stretch-AS-build
2.2-stretch:从dotnet/core/sdk c5e155d5a1d1拉取fs层221d80d00ae9:拉取fs层4250b3117dca:拉取fs层
3b7ca19181b2:牵引fs层3466298fc231:牵引fs层
310737d73ed1:牵引fs层dc981de74fae:牵引fs层
3b7ca19181b2:等待3466298fc231:等待310737d73ed1:等待
dc981de74fae:正在等待4250b3117dca:验证校验和4250b3117dca:
下载完整的221d80d00ae9:验证校验和221d80d00ae9:
下载完整的3466298fc231:验证校验和3466298fc231:
下载完整的c5e155d5a1d1:验证校验和c5e155d5a1d1:
下载完整的3b7ca19181b2:验证校验和3b7ca19181b2:
下载完整的c5e155d5a1d1:拉动完整的221d80d00ae9:拉动
完成310737d73ed1:验证校验和310737d73ed1:下载
完成4250b3117dca:拉动完成dc981de74fae:验证校验和
dc981de74fae:下载完整3b7ca19181b2:拉取完整
3466298fc231:拉动完成310737d73ed1:拉动完成dc981de74fae:
获取完整摘要:
sha256:222CC0BB0BC93875EE0F6BE626B2838EEA838F65E5365E07C33EB9D00B0163
状态:已下载的较新图像
mcr.microsoft.com/dotnet/core/sdk:2.2-stretch->e4747ec2aaff步骤
4/15:WORKDIR/src—>在a7ebcac87f68中运行
中间容器a7ebcac87f68->d7541674a9da步骤5/15:
复制[“DockerTest/DockerTest.csproj”,“DockerTest/”]复制失败:stat
/var/lib/docker/tmp/docker-builder158012929/DockerTest/DockerTest.csproj:否
这样的文件或目录##[错误]复制失败:stat/var/lib/docker/tmp/docker-builder158012929/DockerTest/DockerTest.csproj:否
此类文件或目录##[错误]/usr/bin/docker失败,返回代码:1##[部分]完成:生成容器映像
我通过使用与Visual Studio中相同的dockerfile将buildContext设置为“$(Build.Repository.LocalPath)”,而不调整路径,从而解决了此问题:
在YAML配置中,我添加了以下行:
buildContext:'$(Build.Repository.LocalPath)'