Dot-Net
在 ASP.NET Core 中建構 docker:“沒有這樣的文件或目錄”錯誤
建構 docker 時出現錯誤。
Sending build context to Docker daemon 3.584 kB Step 1/8 : FROM microsoft/aspnetcore:1.1 ---> 2628aaa7b8cf Step 2/8 : ENV ASPNETCORE_URLS "http://*:5000" ---> Using cache ---> 5dffde204fef Step 3/8 : ENV ASPNETCORE_ENVIRONMENT "Development" ---> Using cache ---> 3064358bc0eb Step 4/8 : ARG source ---> Using cache ---> 4159d0eb78c0 Step 5/8 : WORKDIR /app ---> Using cache ---> 61a394c84304 Step 6/8 : EXPOSE 5000 ---> Using cache ---> c7c2309f7085 Step 7/8 : COPY ${source:-obj/Docker/publish} . lstat obj/Docker/publish: no such file or directory這是我的 Dockerfile。
FROM microsoft/aspnetcore:1.1 ENV ASPNETCORE_URLS="http://*:5000" ENV ASPNETCORE_ENVIRONMENT="Development" ARG source WORKDIR /app EXPOSE 5000 COPY ${source:-obj/Docker/publish} . ENTRYPOINT ["dotnet", "ProjectTestApi.dll"我執行一個命令:
$ docker build -t my-docker-image-test .你知道有什麼問題嗎?
**發生這種情況是因為您沒有發布解決方案。**錯誤消息是不言自明的:
no such file or directory預設情況下,當您向 ASP.NET Core Visual Studio 2017 項目添加Docker 支持時,它會創建一堆
docker-compose.yml文件,其中一個是docker-compose.ci.build.yml處理建構過程的文件。然後,當您通過 Visual Studio 建構項目時,docker-compose將執行完整的管道。, 的內容與
docker-compose.ci.build.yml此類似(顯然取決於自定義配置和項目名稱):version: '2' services: ci-build: image: microsoft/aspnetcore-build:1.0-1.1 volumes: - .:/src working_dir: /src command: /bin/bash -c "dotnet restore ./SolutionName.sln && dotnet publish ./SolutionName.sln -c Release -o ./obj/Docker/publish"正如您在最後一行中看到的,
dotnet publish呼叫了一個命令,它實際上建構並發布了您的項目。因此**,您的問題的解決方案**將只是在呼叫 docker 之前建構項目:
dotnet publish ./SolutionName.sln -c Release -o ./obj/Docker/publish docker build -t my-docker-image-test .