Я пытаюсь развернуть .Net core API с swagger openAPI в нем.Это хорошо работает на моем компьютере с Visual Studio.Я могу получить к нему доступ по адресу: localhost: 5000 / swagger / index.html, но когда я пытаюсь развернуть его с помощью Docker, я не могу получить доступ к веб-странице
. Приложение .net, кажется, хорошо взаимодействует сВ базе данных sql нет ошибок в журналах докеров двух контейнеров, но когда я перехожу к IP-адресу, указанному командой «docker inspect» на web_API_container, у меня появляется страница 404 не найдена.IP-адрес доступен (также с помощью ping), но я не могу получить доступ к веб-странице swagger.
вот мой docker-compose
version: "3"
services:
web:
build: .
ports:
- "5000:80"
depends_on:
- db
db:
image: "mcr.microsoft.com/mssql/server"
environment:
SA_PASSWORD: "password"
ACCEPT_EULA: "Y"
и вот мой Dockerfile для приложения .net:
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
EXPOSE 5000
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ["TestAPI/TestAPI.csproj", "TestAPI/"]
COPY ["Abstract/Abstract.csproj", "Abstract/"]
COPY ["ClassLibrary1/Entities.csproj", "ClassLibrary1/"]
COPY ["DataAccessLayer/DataAccessLayer.csproj", "DataAccessLayer/"]
COPY ["Services/Services.csproj", "Services/"]
RUN dotnet restore "TestAPI/TestAPI.csproj"
COPY . .
WORKDIR "/src/TestAPI"
RUN dotnet build "TestAPI.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "TestAPI.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "TestAPI.dll"]
Я также попытался сопоставить порт 80 с80 вместо 5000 на 80 в docker-compose, потому что я прочитал, что основное приложение .Net работает на 80-м порту, но оно не сработало лучше ...
спасибо за вашу помощь!