как заставить горячую перезагрузку работать с React с помощью Dotnet и Docker

#javascript #c# #reactjs #docker #.net-core

#javascript #c# #reactjs #docker #.net-ядро

Вопрос:

Я пытаюсь заставить горячую перезагрузку работать с React, Docker и Dotnet.

Однако из того, что я нашел в Интернете, только статический рендеринг работает с docker.

Итак, я должен сделать

docker -t build {Name_of_file} каждый раз, чтобы увидеть изменения в React….

Я уверен, что есть способ сделать это,

вот мой dockerfile.

 FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build

RUN curl --silent --location https://deb.nodesource.com/setup_10.x | bash -
RUN apt-get install --yes nodejs

# Copy the source from your machine onto the container.
WORKDIR /src
COPY . .


RUN dotnet restore "./dotnet-test.csproj"

RUN dotnet publish "dotnet-test.csproj" -c Release -o /app/publish

FROM mcr.microsoft.com/dotnet/aspnet:5.0

# Expose port 80 to your local machine so you can access the app.
EXPOSE 80
EXPOSE 443


COPY --from=build /app/publish .

ENTRYPOINT ["dotnet", "dotnet-test.dll"]
 

Если у кого-нибудь есть github, который делает это, дайте мне знать (:

Будущее меня здесь!! Вот ссылка, по которой я делаю это с помощью https

https://easyrun32.medium.com/net-5-react-docker-nginx-mysql-https-hotreload-50d87b32d492

Комментарии:

1. Почему вы пытаетесь использовать docker для запуска сеанса отладки? обычно это делается так: вы запускаете свою «часть реакции» с помощью node, yarn start и т. Д. … Например, в VS Code … и часть C # в Visual Studio …. docker больше подходит для запуска вещей, которые вы не отлаживаете.

Ответ №1:

Отказ от ответственности: не уверен, что это решение будет работать, но попробуйте

Краткие сведения:

  1. Используйте только изображение sdk (изображение среды выполнения не будет работать).
  2. Используйте dotnet watch
  3. Обновите .csproj файл, чтобы включить файлы для просмотра

Длинный ответ:

1. Новый файл Dockerfile

 FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build

RUN curl --silent --location https://deb.nodesource.com/setup_10.x | bash -
RUN apt-get install --yes nodejs

# Copy the source from your machine onto the container.
WORKDIR /src
COPY . .


RUN dotnet restore "./dotnet-test.csproj"

RUN dotnet publish "dotnet-test.csproj" -c Release -o /app/publish


# Expose port 80 to your local machine so you can access the app.
EXPOSE 80
EXPOSE 443

WORKDIR /app/publish
ENTRYPOINT ["dotnet", "watch", "dotnet-test.dll"]
 

2. Изменения в файле проекта

 <ItemGroup>
    <!-- extends watching group to include *.js files -->
    <Watch Include="***.js" Exclude="node_modules***;***.js.map;obj***;bin***" />
</ItemGroup>
 

Это должно работать по большей части. Делайте быстрые обновления, чтобы включать / исключать больше файлов.