Swagger не открывается при работе в контейнере Docker - PullRequest
1 голос
/ 15 января 2020

В моем проекте я настроил Swagger с Swashbuckle следующим образом в моем файле Startup.cs:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
            });

Когда я запускаю свое приложение из Visual Studio, я могу получить доступ к localhost:123456/swagger и получить документацию по API, как и должно быть. Однако, когда я запускаю свое приложение через Docker с docker-compose up и обращаюсь к docker_machine_IP/swagger, оно просто перенаправляет меня на главную страницу моих приложений, без страницы Swagger или вообще с ошибками, просто обратно на ту же страницу, как если бы я не писал /swagger в конце вообще. Я пробовал с несколькими разными URL, /swagger, /swagger-ui.html et c, но без разницы. Существуют ли какие-либо конкретные c конфигурации, которые должны быть записаны в Dockerfile или в другом месте, чтобы иметь возможность доступа к документации Swagger при работе в Docker контейнере?

Docker -составить файл:

version: "3.7"
services:
  node-frontend:
    container_name: node-frontend
    build: ./ClientApp/
    command: npm run start
    ports:
      - "3000:3000"
  dotnet-backend:
    container_name: dotnet-backend
    build: .
   #expose:
    #  - "80"
    links:
      - mssql-db
    ports:
      - "8000:80"
  nginx-reverse-proxy:
    container_name: nginx-reverse-proxy
    build: ./nginx/
    #command: tail -F /dev/null
    command: nginx -g 'daemon off;'
    ports:
      - "80:80"
    #  - "443:443"
    expose:
      - "80"
      - "443"
    links:
      - node-frontend
      - dotnet-backend
  mssql-db:
    container_name: mssql-db
    #image: mcr.microsoft.com/mssql/server:2019-latest
    build: ./Database
    environment: 
      - SA_PASSWORD=password
      - ACCEPT_EULA=Y
    volumes:
     - ./Database/:/scripts/
    ports:
      - "1433:1433"
    expose:
      - "1433"
    command:
      - /bin/bash
      - -c 
      - |

Dockerfile:

FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env
WORKDIR /app

# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore

# Copy everything else and build
COPY . ./
RUN dotnet publish -c Debug -o out Project.csproj

# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
WORKDIR /app
COPY --from=build-env /app/out .

EXPOSE 80

ENTRYPOINT ["dotnet", "ProjectApi.dll", "--environment=Development"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...