Я создал 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, но это не сработало.
Не могу, потому что это собственный репозиторий частной организации. Что собственно хочет проверить?
Как? можешь привести пример?
@shah strictil Попробуйте добавить команду Startupcommand в службу приложений Azure как dotnet YourLocalProjectName.dll. Проверьте это Изображение.
Все еще не работает
Не обращайте внимания на предыдущий комментарий, все работает.
Да, продолжайте и большое спасибо
Публикация моего комментария в качестве ответа.
Я создал простой ASP. NET Core 8, поместил его в контейнер с помощью Docker, отправил в реестр контейнеров Azure и развернул в веб-приложении Azure (Linux). Это было успешно.
Я тоже столкнулся с той же проблемой, поэтому разместил это
dotnet <YourLocalWebAppName>.dll
Команда запуска в Службе приложений Azure, как показано ниже.
Команда запуска для Linux необходима, она сообщает платформе, как запустить приложение.
Вывод службы приложений Azure:
Если возможно, можете ли вы поделиться своим репозиторием на GitHub?