При добавлении поддержки докеров в проект 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