Невозможно получить доступ к приложению ASP.NET Core 8.0 в Docker в браузере.

Я создаю приложение ASP.NET Core MVC в DOT NET 8.0. Затем добавил к нему Dockerfile. Dockerfile приведен ниже:

      FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 8080
EXPOSE 8081

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["DockerHttps.csproj", "."]
RUN dotnet restore "./././DockerHttps.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "./DockerHttps.csproj" -c $BUILD_CONFIGURATION -o /app/build

FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./DockerHttps.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DockerHttps.dll"]

Затем я создаю образ докера для приложения:

      docker build -t dhttps:v1 .

Образ создается. Никаких проблем до сих пор. Затем я запускаю его в контейнере:

      docker run -p 7000:8080 -p 7001:8081 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORT=7001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="mypass123" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v %USERPROFILE%\.aspnet\https:/https/ dhttps:v1

См. порты - -p 7000:8080 -p 7001:8081 в приведенной выше команде. Команды 8080 и 8081 приведены в Dockerfile.

      EXPOSE 8080
EXPOSE 8081

Проблема в том, что я не могу получить доступ к приложению в браузере по URL-адресу https://localhost:7001.

Я получаю сообщение: «Переопределение HTTP_PORTS '8080' и HTTPS_PORTS ''. Привязка к значениям, определенным URL-адресами, вместо «https://+;http://+».». Я думаю в этом проблема, какое может быть решение. См. изображение ниже:

Если я использую порты 80 и 443, выполнив следующую команду:

      docker run -p 7000:80 -p 7001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORT=7001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="mypass123" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v %USERPROFILE%\.aspnet\https:/https/ dhttps:v1

Тогда я могу открыть приложение.

Microsoft изменила Dockerfile для приложений .NET 8 и добавила новый порт Expose, который я показывал ранее. Проблема возникает только для .NET 8, и предыдущие версии работают хорошо.

Любое решение??

0 ответов

Другие вопросы по тегам