Visual Studio的Docker工具会为包含COPY . .
命令的ASP.NET项目创建一个Dockerfile,如下所示:
Visual Studio的Docker工具将为包含COPY . .
命令的ASP.NET项目创建一个Dockerfile,如下所示:
WORKDIR /src
COPY *.sln ./
...
COPY . .
从我所了解的情况来看,<src>
参数是相对于上下文而言的,因此不会受到WORKDIR /src
命令的影响。然而,<dest>
相对于WORKDIR
,因此会指向/src
。
这个命令只是将剩余的文件(docker-compose.yml、.dockerignore等)从根目录中带到包中吗?如果是这样的话,为什么要在RUN dotnet build...
命令之前这样做呢?
下面是完整的Dockerfile:
FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY *.sln ./
COPY MyProject/MyProject.csproj MyProject/
RUN dotnet restore
COPY . . # The line mentioned above
WORKDIR /src/MyProject
RUN dotnet build -c Release -o /app
FROM build AS publish
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "MyProject.dll"]
COPY . .
跳过已经存在的文件是很重要的。 - Simon_Weaver