我已经安装了适用于 Windows 的 Docker,并使用 Visual Studio 2017 创建了一个具有 docker 支持的新 Asp.net core 应用程序(我尚未进行任何更改)。但是,docker build 报了以下错误。 Dockerfile 正确吗?
PS C:\source\repos\myProj\ProcessFiles> docker build .
Sending build context to Docker daemon 1.178MB
Step 1/17 : FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
---> 04aae08f15c5
Step 2/17 : WORKDIR /app
---> Using cache
---> 135955e04284
Step 3/17 : EXPOSE 34746
---> Using cache
---> 85fd0075aa42
Step 4/17 : EXPOSE 44398
---> Using cache
---> 7e3d5526f601
Step 5/17 : FROM microsoft/dotnet:2.1-sdk AS build
---> 7c3e298d40ac
Step 6/17 : WORKDIR /src
---> Using cache
---> b395ba27d8f9
Step 7/17 : COPY ProcessFiles/ProcessFiles.csproj ProcessFiles/
COPY failed: stat /var/lib/docker/tmp/docker-builder662645761/ProcessFiles/ProcessFiles.csproj: no such file
or directory
这里是Dockerfile
由 Visual Studio 自动生成。线路发生错误COPY ProcessFiles/ProcessFiles.csproj ProcessFiles/
.
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 34746
EXPOSE 44398
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ProcessFiles/ProcessFiles.csproj ProcessFiles/
RUN dotnet restore ProcessFiles/ProcessFiles.csproj
COPY . .
WORKDIR /src/ProcessFiles
RUN dotnet build ProcessFiles.csproj -c Release -o /app
FROM build AS publish
RUN dotnet publish ProcessFiles.csproj -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "ProcessFiles.dll"]
这是 Visual Studio 的输出。 (排除了有关设置 AWS 的行)。
Inspecting Dockerfile to figure how to build project and docker image
... Skip building project since it is done as part of Dockerfile
Executing docker build
... invoking 'docker build', working folder 'C:\source\repos\myProj\ProcessFiles, docker file C:\source\repos\myProc\ProcessFiles\Dockerfile, image name processfiles:latest'
... docker build: Sending build context to Docker daemon 1.178MB
... docker build: COPY failed: stat /var/lib/docker/tmp/docker-builder225959758/ProcessFiles/ProcessFiles.csproj: no such file or directory
... docker build: Step 1/17 : FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
... docker build: ---> 04aae08f15c5
... docker build: Step 2/17 : WORKDIR /app
... docker build: ---> Using cache
... docker build: ---> 135955e04284
... docker build: Step 3/17 : EXPOSE 34746
... docker build: ---> Using cache
... docker build: ---> 85fd0075aa42
... docker build: Step 4/17 : EXPOSE 44398
... docker build: ---> Using cache
... docker build: ---> 7e3d5526f601
... docker build: Step 5/17 : FROM microsoft/dotnet:2.1-sdk AS build
... docker build: ---> 7c3e298d40ac
... docker build: Step 6/17 : WORKDIR /src
... docker build: ---> Using cache
... docker build: ---> b395ba27d8f9
... docker build: Step 7/17 : COPY ProcessFiles/ProcessFiles.csproj ProcessFiles/
Error executing "docker build"
Attempting to clean up any ELB resources created for the failed deployment
Unknown error publishing container to AWS
这是目录中的文件C:\source\repos\myProj
。文件Dockerfile
在下面C:\source\repos\myProj\ProcessFile\
。是否应该将其提升一级?
Mode Name
---- ----
d----- bin
d----- obj
d----- ProcessFiles
-a---- .dockerignore
-a---- .gitattributes
-a---- .gitignore
-a---- docker-compose.dcproj
-a---- docker-compose.override.yml
-a---- docker-compose.yml
-a---- myProc.sln