Каково обоснование того, что мы больше не будем использовать DotNet Watch в Docker? - PullRequest
0 голосов
/ 27 июня 2019

примерно год назад, я помню, когда мы хотим запустить приложение в докере для целей разработки, мы запускаем приложение с dotnet watch run.но в последних обновлениях шаблон создает версию для публикации и запускает ее.Я согласен, что это хорошо для производства.но почему версия разработки полностью исчезла?Я много искал, но не мог найти, почему это изменилось.

примерно так:

FROM microsoft/aspnetcore-build:2.0

# Required inside Docker, otherwise file-change events may not trigger
ENV DOTNET_USE_POLLING_FILE_WATCHER 1

# Set a working dir at least 2 deep. The output and intermediate output folders will be /code/obj and /code/bin
WORKDIR /code/app

# By copying these into the image when building it, we don't have to re-run restore everytime we launch a new container
COPY web.csproj .
COPY NuGet.config .
COPY Directory.Build.props .
RUN dotnet restore

# This will build and launch the server in a loop, restarting whenever a *.cs file changes
ENTRYPOINT dotnet watch run --no-restore

Теперь при каждом изменении нам нужно опубликовать приложение, чтобы снова иметь работающий докер.

Я видел, что отладка прекрасно работает в Visual Studio с этим новым подходом, но я не совсем понимаю, как Visual Studio может подключаться к контейнеру и выполнять удаленную отладку.и еще больше меня удивляет, как Visual Studio может отлаживать приложение, опубликованное в режиме выпуска?

но теперь это выглядит так:

FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /src
COPY ["MyProject.csproj", "MyProject"]
COPY ["MyProject.Common.csproj", "MyProject.Common"]
RUN dotnet restore "MyProject.csproj"
COPY . .
WORKDIR "/src/MyProject"
RUN dotnet build "MyProject.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "MyProject.csproj" -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "MyProject.dll"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...