首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure管道在Visual中使用相同的停靠文件生成码头映像失败

Azure管道在Visual中使用相同的停靠文件生成码头映像失败
EN

Stack Overflow用户
提问于 2019-05-30 23:18:13
回答 6查看 9.6K关注 0票数 18

我正在尝试创建一个部署管道,以便将映像部署到Kubernetes集群。此过程的第一步是基于停靠文件创建图像。当我添加停靠器支持时,我使用的停靠文件是从Visual生成的,并在右键单击停靠器图像并选择创建它时成功地创建了图像。当我配置Azure管道时,create映像在尝试构建实际解决方案时就会失败。上一步获取所有源文件,但在使用

代码语言:javascript
复制
[error]COPY failed: stat/var/lib/docker/tmp/docker-builder158012929/DockerTest/DockerTest.csproj:
 no such file or directory

[error]/usr/bin/docker failed with return code: 1

下面是从Visual生成的停靠文件,由azure管道阶段引用,以创建对接器映像。

代码语言:javascript
复制
 FROM mcr.microsoft.com/dotnet/core/runtime:2.2-stretch-slim AS base

 WORKDIR /app   
 FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS
 build 

 WORKDIR /src      
 COPY ["DockerTest/DockerTest.csproj", "DockerTest/"]      
 RUN dotnet restore "DockerTest/DockerTest.csproj"      
 COPY . .      
 WORKDIR "/src/DockerTest"      
 RUN dotnet build "DockerTest.csproj" -c Release -o /app  

 FROM build AS publish      
 RUN dotnet publish "DockerTest.csproj" -c Release -o /app

 FROM base AS final      
 WORKDIR /app      
 COPY --from=publish /app .      
 ENTRYPOINT ["dotnet", "DockerTest.dll"]

##sectionStarting:构建容器映像 ==============================================================================任务: Docker描述:生成、标记、推送或运行Docker映像,或运行Docker命令。任务可以与Docker或Azure容器注册表一起使用。作者: Microsoft:More Information) ==============================================================================命令/usr/bin/docker构建-f /home/vsts/work/1/s/DockerTest/Dockerfile ikhaontainers.azure.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-拉伸-苗条:从dotnet/core/运行时743f2d6c1f65:拉fs层07488b8de0:拉fs层3ccad844418d:拉动fs层3adcc844418d:等待ac831735b47a层3adcc844418d:下载完整的743f2dd6c1f65:验证校验和743f2d6c1f65:下载完整的074da88b8de0:验证校验和074da88b8de0:下载完整的3adcc844418d:验证校验和zadcc844418d:下载完整的743f2d6c1f65:拉出完整的074da88b8de0:拉完整的ac831735b47a:拉出完整的3adcc844418d:拉出完整的Digest: mcr.microsoft.com/dotnet/core/runtime:2.2-stretch-slim的下载状态:-> c0f9ab44ecc1步骤2/15 : WORKDIR /app ->运行在6d1a5f5600dd中运行的中间容器6da5f5600dd-5fce274dd-5fce271aff 3。/15 :来自mcr.microsoft.com/ dotnet/core/sdk :2.2-拉伸作为构建2.2-拉伸:从dotnet/core/sdk c5e155d5a1d1:拉出fs层221d80d009:拉fs层4250b3117dca:拉fs层3b7ca19181b2:拉fs层3466298fc231:拉出fs层310737d73ed1:拉出fs层dc981de74fae:拉扯层3b7ca19181b2:等待3429668fc231:等待310737d73dca:等待dc981de74fae:验证校验校验4250b3117dca:下载完整22d80d009:校验d22009下载完整代码:c5e155d5a1d1 29834231:下载完整的c5e155d5a1d1 29834231:验证以下内容:验证校验和c5e155d5a1d1:下载完整的校验和3b7ca19181b2:验证校验和3b7ca19181b2:下载完整的c5e155d5a1d1:拉出完整的221d80d00ae9:拉出完整的310737d73ed1:验证校验和310737d73ed1:下载完整的4250b3117dca:拉出完整的校验和dc981de74fae:下载完整的校验和dc981de74fae:下载完整的3b7ca19181b2:拉完成3466298fc231:拉出完整的310737d73ed1:拉完全的dc981de74fae:拉出完整的dc981de74fae:mcr.microsoft.com/doot737ddk/sdk:2.2-拉伸-> e4747ec2aaff步骤4/15 : for KDD-/src> /src -/src->运行在a7ebcac87f68中删除中间容器a7ebcac87f68 --> d7541674a9da步骤5/15 :复制"DockerTest/DockerTest.csproj","DockerTest/“副本失败: stat /var/lib/docker/tmp/docker-builder158012929/DockerTest/DockerTest.csproj:no这样的文件或目录 stat/var/lib/docker/tmp/docker-builder158012929/DockerTest/DockerTest.csproj:no这样的文件或目录 ##sectionFinishing/usr/bin/docker返回代码失败:1 ##sectionFinishing:构建容器映像

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2019-05-31 06:26:12

stat/var/lib/docker/tmp/docker-builder158012929/DockerTest/DockerTest.csproj:失败: errorCOPY没有这样的文件或目录

根据此错误消息,错误发生在您的dockerfile:COPY ["DockerTest/DockerTest.csproj", "DockerTest/"]行上。

首先,请确认您没有使用.dockerignore文件来排除此文件:DockerTest/DockerTest.csproj,该文件必须存在于您运行生成的目录中。

如果.dockerignore文件没有忽略它,那么您需要考虑您的dockerfile位置级别。

DockerTest.csproj文件不应放在较低的源文件路径级别。您需要更改上下文的源,将其移到更高的级别。因此,手动修改您的dockerfile如下:

代码语言:javascript
复制
COPY ["DockerTest.csproj", "DockerTest/"]
票数 8
EN

Stack Overflow用户

发布于 2019-09-24 06:30:10

我使用与Visual中相同的dockerfile将buildContext设置为“$(Build.Repository.LocalPath)”,而不调整路径,从而解决了这个问题:

在YAML-Konfiguration中,我添加了以下一行:

代码语言:javascript
复制
buildContext: '$(Build.Repository.LocalPath)'
票数 37
EN

Stack Overflow用户

发布于 2019-11-18 08:20:50

当您通过Visual (至少是v16.3.9)生成Docker支持时,在Azure管道中用预定义的Docker管道模板使用这个生成的项目时就会出现这个问题,要么使用老式的所有单击方式,即所谓的,即经典编辑器,要么使用新的4步轻松单击方式,即所谓的,现代编辑器

生成的文件中的更改

代码语言:javascript
复制
COPY ["DockerTest/DockerTest.csproj", "DockerTest/"]

代码语言:javascript
复制
COPY ["DockerTest.csproj", "DockerTest/"]

解决Azure管道的问题,但是它会破坏Visual中的本地构建的

添加

代码语言:javascript
复制
buildContext: '$(Build.Repository.LocalPath)'

对于由现代编辑器生成的YAML文件,将中断构建任务。现代编辑器中使用的模板依赖于默认的构建上下文,解析器将不识别( buildContext )命令。

解决此问题的唯一可能方法是覆盖默认构建上下文。此覆盖将使生成功能保留在Visual或Azure管道中。

可以在经典编辑器的生成映像任务中重写构建上下文。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56386812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档