2017-11-18 287 views
2

我創建了一個相當標準的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 

謝謝。

+0

我有類似的錯誤...三重檢查你的上/下情況作爲Linux區分大小寫 –

+0

好吧,文件不存在,他們應該在哪裏。 – 4c74356b41

+0

乍一看,'COPY $ {source:-obj/Docker/publish}。'這行看起來很時髦,不應該像'COPY $ {source}/obj/Docker/publish .'這樣的東西。我可能是錯的,但我從來沒有見過類似的東西,並且在網上找不到任何表明這是正確語法的東西。 – DivXZero

回答

0

請按以下步驟項目部署到Azure中:

  1. 創建一個新的構建定義
  2. 添加泊塢撰寫任務(碼頭工人撰寫文件:**/docker-compose.ci.build.yml;操作:Run a Docker Compose command;命令:run ci-build
  3. 添加複製文件任務(源文件夾:$(System.DefaultWorkingDirectory)/[your project path]/obj/Docker/publish;內容:**;目標文件夾:$(Build.ArtifactStagingDirectory)
  4. 添加發布構建工件任務(發佈路徑:$(Build.ArtifactStagingDirectory)
  5. 創建新版本definitioin
  6. 添加Azure應用服務部署任務(包或文件夾:$(System.DefaultWorkingDirectory)/[artifact build definition name]/[artifact name];取消選中Publish using Web Deploy option

在另一方面,有可能你受益相關主題:Docker compose VSTS task failder

0

如果有人運行撰寫構建或向上時仍然有問題 - 錯誤信息:

服務 'PHP' 未能建立:複製失敗:統計的/ var/lib中/泊塢窗的/ tmp /泊塢窗建設者...

問題在我的身邊是因爲在.dockerignore要複製的文件夾被引用。只需刪除需要複製的文件夾行。

相關問題