Возникла проблема после развертывания образа докера net 8 в контейнере веб-приложения Azure (Linux)

Я создал API, используя .Net 8, и создал образ контейнера, используя ниже Dockerfile.

#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.

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

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["Presentation/POMaster.API/POMaster.API.csproj", "Presentation/POMaster.API/"]
COPY ["Libraries/POMaster.Framework/POMaster.Framework.csproj", "Libraries/POMaster.Framework/"]
COPY ["Libraries/POMaster.Services/POMaster.Services.csproj", "Libraries/POMaster.Services/"]
COPY ["Libraries/POMaster.Data/POMaster.Data.csproj", "Libraries/POMaster.Data/"]
COPY ["Libraries/POMaster.Domain/POMaster.Domain.csproj", "Libraries/POMaster.Domain/"]
COPY ["Libraries/POMaster.Utils/POMaster.Utils.csproj", "Libraries/POMaster.Utils/"]
RUN dotnet restore "./Presentation/POMaster.API/POMaster.API.csproj"
COPY . .
WORKDIR "/src/Presentation/POMaster.API"
RUN dotnet build "./POMaster.API.csproj" -c $BUILD_CONFIGURATION -o /app/build

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

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

Я загрузил это изображение в ACR. Я использую контейнер веб-приложения Azure (Linux) для запуска контейнера из образа. Все работает нормально (т. е. согласно журналам), но я не могу зайти на сайт по общедоступному URL-адресу, и он показывает 404.

Ниже приведен журнал из потока журналов.

Что я здесь упускаю или делаю что-то не так? Может кто-нибудь помочь решить? Ваша помощь будет принята с благодарностью.

Я также добавил параметр WEBSITES_PORT со значением 8080 в настройках веб-приложения Azure, но это не сработало.

Если возможно, можете ли вы поделиться своим репозиторием на GitHub?

Sirra Sneha 25.04.2024 08:17

Не могу, потому что это собственный репозиторий частной организации. Что собственно хочет проверить?

shah harshil 25.04.2024 08:19

Как? можешь привести пример?

shah harshil 25.04.2024 08:44

@shah strictil Попробуйте добавить команду Startupcommand в службу приложений Azure как dotnet YourLocalProjectName.dll. Проверьте это Изображение.

Aslesha Kantamsetti 25.04.2024 08:57

Все еще не работает

shah harshil 25.04.2024 09:10

Не обращайте внимания на предыдущий комментарий, все работает.

shah harshil 25.04.2024 11:29

Да, продолжайте и большое спасибо

shah harshil 25.04.2024 12:17
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
7
242
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Публикация моего комментария в качестве ответа.

Я создал простой ASP. NET Core 8, поместил его в контейнер с помощью Docker, отправил в реестр контейнеров Azure и развернул в веб-приложении Azure (Linux). Это было успешно.

Я тоже столкнулся с той же проблемой, поэтому разместил это

dotnet <YourLocalWebAppName>.dll

Команда запуска в Службе приложений Azure, как показано ниже.

Команда запуска для Linux необходима, она сообщает платформе, как запустить приложение.

Вывод службы приложений Azure:

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