【发布时间】:2019-04-26 20:26:58
【问题描述】:
将 docker 支持添加到 ASP.NET Core 项目时,VS (15.9.2) 将添加一个默认的 Dockerfile,用于恢复、构建和发布。但不是只是将所有文件复制到 Docker 构建容器中,它首先仅复制 proj 文件,进行还原,然后在构建之前复制其余部分。我想知道为什么要这样做?这与直接复制所有文件然后进行还原有什么不同?
这种方法的问题是解决方案中的所有 proj 文件都需要单独复制,如果项目非常大并且不时添加和删除项目,那么保持 Dockerfile 同步有点困难有了这个。我只是想知道为什么要这样做,以及是否可以复制所有内容?
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ["Temp2/Temp2.csproj", "Temp2/"]
COPY ["Temp3/Temp3.csproj", "Temp3/"]
RUN dotnet restore "Temp2/Temp2.csproj"
COPY . .
WORKDIR "/src/Temp2"
RUN dotnet build "Temp2.csproj" -c Release -o /app
或
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY . .
RUN dotnet restore "Temp2/Temp2.csproj"
WORKDIR "/src/Temp2"
RUN dotnet build "Temp2.csproj" -c Release -o /app
【问题讨论】: