Как заставить общаться .Net core API, swagger и sql базу данных через docker-compose - PullRequest
1 голос
/ 05 мая 2019

Я пытаюсь развернуть .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-м порту, но оно не сработало лучше ...

спасибо за вашу помощь!

...