Я замечаю эту проблему при развертывании моего asp. net ядра MVC приложения docker образа в Azure Службе приложений. Либо настройка ASPNETCORE_ENVIRONMENT в Dockerfile ENV ASPNETCORE_ENVIRONMENT Development
, либо настройка docker -compose
environment:
- ASPNETCORE_ENVIRONMENT=Development
Я всегда получаю 404 при доступе к веб-сайту.
Странная часть в том, что если я установлю ASPNETCORE_ENVIRONMENT к любому другому значению (Staging, Production, et c.), 404 пропадут, и к веб-сайту можно будет обращаться нормально
Как воспроизвести:
Создание проекта asp. net core MVC (просто создайте голый проект, не меняйте код и не добавляйте лог c)
Создайте этот проект на локальном компьютере (Dockerfile, как показано ниже)
FROM microsoft/dotnet:2.2-sdk AS build-env
WORKDIR /app
# Copy necessary files and restore
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM microsoft/dotnet:2.2-aspnetcore-runtime
COPY --from=build-env /app/out .
# Start
ENV ASPNETCORE_ENVIRONMENT Development
ENTRYPOINT ["dotnet", "CICDTesting.dll"]
Pu sh это изображение в Azure реестр контейнеров У меня есть веб-крючок, подключенный к службе приложений, поэтому развертывание будет запускаться автоматически Из потока журнала я вижу изображение успешно загружено, и контейнер запущен и работает Доступ к веб-сайту, тогда он дает 404 Если я изменяю
ENV ASPNETCORE_ENVIRONMENT Разработка на
ENV ASPNETCORE_ENVIRONMENT Этап и повторение шагов сборки и развертывания, веб-сайт будет доступен.
То же самое, если я удалю ENV ASPNETCORE_ENVIRONMENT Разработка из Dockerfile и настройка его в docker -compose