Docker возвращает ответ только для http-порта - PullRequest
1 голос
/ 12 июля 2020

Вот часть docker compose

ecommerce.supplier:
    container_name: supplier
    image: ${DOCKER_REGISTRY-}ecommercesupplier
    build:
        context: .
        dockerfile: ECommerce.Supplier/Dockerfile
    ports:
        - "5000:80"
        - "5001:443"
    env_file: ECommerce.Common/Common.env
    environment:
        - ConnectionStrings__DefaultConnection=Server=host.docker.internal\MSSQLSERVER01;Database=ECommerceSupplier;User Id=sa;Password=123456;MultipleActiveResultSets=true
    restart: on-failure
    volumes:
        - ./.aspnet/supplier/DataProtection-Keys:/root/.aspnet/DataProtection-Keys
    networks: 
        - ecommerce-network

Вот часть Docker файла для этой службы, которая предоставляет порты. Файл создается Visual Studio автоматически.

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

Вот docker ps:

введите описание изображения здесь

Так что же из всего этого получается. Когда я нажимаю http://localhost: 5000 / api / V1 / Supplier / getlist с запросом на получение с правильным токеном, я получаю ответ. Но если я попробую использовать ту же конечную точку с https://localhost: 5001, я получаю сообщение «Не удалось получить ответ» в почтальоне.

Как я могу заставить его работать на https://localhost: 5001. Мой уровень в разработке - новичок, поэтому, если вам нужна дополнительная информация, пожалуйста, внимательно объясните, что именно вам нужно.

Примечание: это происходит для всех сервисов на скриншоте.

1 Ответ

2 голосов
/ 12 июля 2020

Похоже, проблема в том, что внутри вашего docker контейнера приложение не прослушивает 443.

Возможно, эти две ссылки могут вам помочь:

Я бы взглянул на эту часть:

version: '3.4'

services:
  webapp:
    image: mcr.microsoft.com/dotnet/core/samples:aspnetapp
    ports:
      - 80
      - 443
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_Kestrel__Certificates__Default__Password=password
      - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
    volumes:
      - ~/.aspnet/https:/https:ro

в свойстве environment.ASPNETCORE_URLS.

Надеюсь, это будет полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...