Docker构建失败,“服务无法构建:复制失败:没有这样的文件或目录”错误
问题描述:
我创建了一个相当标准的asp.net核心应用程序,我在Docker内托管。这在本地运行,现在我试图使用VSTS构建和部署到Azure。 构建步骤未能与消息:Docker构建失败,“服务无法构建:复制失败:没有这样的文件或目录”错误
Service 'coredockerapi' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder145772260/obj/Docker/publish: no such file or directory
下面是VSTS输出完整的日志:
2017-11-18T11:52:07.4647720Z ##[section]Starting: Build Repo and create container
2017-11-18T11:52:07.5468610Z ==============================================================================
2017-11-18T11:52:07.5514890Z Task : Docker Compose
2017-11-18T11:52:07.5550720Z Description : Build, push or run multi-container Docker applications. Task can be used with Docker or Azure Container registry.
2017-11-18T11:52:07.5606920Z Version : 0.4.7
2017-11-18T11:52:07.5628440Z Author : Microsoft Corporation
2017-11-18T11:52:07.5655390Z Help : [More Information](https://go.microsoft.com/fwlink/?linkid=848006)
2017-11-18T11:52:07.5678480Z ==============================================================================
2017-11-18T11:52:09.5543380Z 50f571c1-89b9-4b2f-8ea8-097b0966e534 exists true
2017-11-18T11:52:10.4809920Z [command]/usr/local/bin/docker-compose -f /opt/vsts/work/1/s/DemoCoreDocker/docker-compose.yml -p DemoDocker run --rm -T coredockerapi
2017-11-18T11:52:10.8401740Z Creating network "demodocker_default" with the default driver
2017-11-18T11:52:10.9847570Z Building coredockerapi
2017-11-18T11:52:11.0663980Z Step 1/6 : FROM microsoft/aspnetcore:2.0
2017-11-18T11:52:12.3621450Z 2.0: Pulling from microsoft/aspnetcore
2017-11-18T11:52:27.7530280Z Digest: sha256:b5e62c20e77b287b014fc0182f0e21dc1bba7aa0a42ac40338e303fdb5b49638
2017-11-18T11:52:27.7774720Z Status: Downloaded newer image for microsoft/aspnetcore:2.0
2017-11-18T11:52:27.7814270Z ---> 757f574feed9
2017-11-18T11:52:27.7883450Z Step 2/6 : ARG source
2017-11-18T11:52:27.8732530Z ---> Running in bc9b4aa5e33b
2017-11-18T11:52:28.0333270Z ---> 612c57db7df1
2017-11-18T11:52:28.0598310Z Removing intermediate container bc9b4aa5e33b
2017-11-18T11:52:28.0636200Z Step 3/6 : WORKDIR /app
2017-11-18T11:52:28.3684690Z ---> fc4ab62cecd6
2017-11-18T11:52:28.3904360Z Removing intermediate container baedca1c9c5d
2017-11-18T11:52:28.3935980Z Step 4/6 : EXPOSE 80
2017-11-18T11:52:28.5164070Z ---> Running in c8bbbf929c3a
2017-11-18T11:52:28.6861730Z ---> 578c84507512
2017-11-18T11:52:28.7087730Z Removing intermediate container c8bbbf929c3a
2017-11-18T11:52:28.7172780Z Step 5/6 : COPY ${source:-obj/Docker/publish} .
2017-11-18T11:52:28.7256500Z Service 'coredockerapi' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder145772260/obj/Docker/publish: no such file or directory
2017-11-18T11:52:28.7798470Z ##[error]Creating network "demodocker_default" with the default driver
2017-11-18T11:52:28.7901050Z ##[error]Building coredockerapi
2017-11-18T11:52:28.8022370Z ##[error]Service 'coredockerapi' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder145772260/obj/Docker/publish: no such file or directory
2017-11-18T11:52:28.8334530Z [command]/usr/local/bin/docker-compose -f /opt/vsts/work/1/s/DemoCoreDocker/docker-compose.yml -p DemoDocker down
2017-11-18T11:52:29.2414990Z Removing network demodocker_default
2017-11-18T11:52:29.4374050Z ##[error]/usr/local/bin/docker-compose failed with return code: 1
2017-11-18T11:52:29.5268820Z ##[section]Finishing: Build Repo and create container
这里是我的搬运工,compose.yml
version: '3'
services:
coredockerapi:
image: coredockerapi
build:
context: ./CoreDockerAPI
dockerfile: Dockerfile
谢谢。
答
请按以下步骤项目部署到Azure中:
- 创建一个新的构建定义
- 添加泊坞撰写任务(码头工人撰写文件:
**/docker-compose.ci.build.yml
;操作:Run a Docker Compose command
;命令:run ci-build
) - 添加复制文件任务(源文件夹:
$(System.DefaultWorkingDirectory)/[your project path]/obj/Docker/publish
;内容:**
;目标文件夹:$(Build.ArtifactStagingDirectory)
) - 添加发布构建工件任务(发布路径:
$(Build.ArtifactStagingDirectory)
) - 创建新版本definitioin
- 添加Azure应用服务部署任务(包或文件夹:
$(System.DefaultWorkingDirectory)/[artifact build definition name]/[artifact name]
;取消选中Publish using Web Deploy option
)
在另一方面,有可能你受益相关主题:Docker compose VSTS task failder
答
如果有人运行撰写构建或向上时仍然有问题 - 错误信息:
服务 'PHP' 未能建立:复制失败:统计的/ var/lib中/泊坞窗的/ tmp /泊坞窗建设者...
问题在我的身边是因为在.dockerignore要复制的文件夹被引用。只需删除需要复制的文件夹行。
我有类似的错误...三重检查你的上/下情况作为Linux区分大小写 –
好吧,文件不存在,他们应该在哪里。 – 4c74356b41
乍一看,'COPY $ {source:-obj/Docker/publish}。'这行看起来很时髦,不应该像'COPY $ {source}/obj/Docker/publish .'这样的东西。我可能是错的,但我从来没有见过类似的东西,并且在网上找不到任何表明这是正确语法的东西。 – DivXZero