#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:
Отказ от ответственности: не уверен, что это решение будет работать, но попробуйте
Краткие сведения:
- Используйте только изображение sdk (изображение среды выполнения не будет работать).
- Используйте
dotnet watch
- Обновите
.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>
Это должно работать по большей части. Делайте быстрые обновления, чтобы включать / исключать больше файлов.