Мой основной проект docker-compose asp.net не работает должным образом, я получаю ERR_CONNECTION_REFUSED - PullRequest
0 голосов
/ 07 марта 2019

У меня есть маленький web service, который я написал в asp.net core 2.2, я использую docker-compose для этого проекта, но я не могу заставить его работать должным образом, каждый раз, когда я пытаюсь запустить его, я получаю ERR_CONNECTION_REFUSED, и он непоказать мою Swagger документациюНа данный момент я просто использую docker file, сгенерированный самим собой, из Visual Studio, потому что я хочу получить хотя бы мою документацию по Swagger, чтобы она не показывала ошибку ERR_CONNECTION_REFUSED.Когда я делаю docker ps, это показывает следующее:

enter image description here

Итак, я знаю, что контейнер запущен и работает.

Мой файл Docker:

FROM microsoft/dotnet:2.2-aspnetcore-runtime-stretch-slim AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/dotnet:2.2-sdk-stretch AS build
WORKDIR /src
COPY AppointmentsAPI/AppointmentsAPI.csproj AppointmentsAPI/
RUN dotnet restore AppointmentsAPI/AppointmentsAPI.csproj
COPY . .
WORKDIR /src/AppointmentsAPI
RUN dotnet build AppointmentsAPI.csproj -c Release -o /app

FROM build AS publish
RUN dotnet publish AppointmentsAPI.csproj -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "AppointmentsAPI.dll"]

Файл Docker-Compose:

version: '3.4'

services:
  appointmentsapi:
    image: ${DOCKER_REGISTRY-}appointmentsapi
    build:
      context: .
      dockerfile: AppointmentsAPI/Dockerfile

Как вы, ребята, можете видеть, что все само генерируется Visual Studio,так что это должно работать, я только хочу видеть свою документацию или, по крайней мере, заставить ее работать, и после этого я добавлю другие вещи.

Ответы [ 2 ]

1 голос
/ 07 марта 2019

Попробуйте добавить порт 80 в файл Compose.Вы открываете порт в dockerfile, который будет работать с docker run -p 80:80 ....Используя compose, вам нужно сопоставить порт.

version: '3.4'
services: 
  appointmentsapi:
    image: ${DOCKER_REGISTRY-appointmentsapi
    build: 
      context: .
      dockerfile: AppointmentsAPI/Dockerfile
    ports:
      - 80:80

Вы можете сопоставить 80 с тем, что вы хотите, или позволить Docker отобразить его для вас.

Позволяет Docker сопоставить внешний порт:

ports: 
  - 80

Подключить порт 80 к внешнему 3000

ports:
  - 80:3000

ОБНОВЛЕНИЕ:

запуск VirtualBox и необходимо использовать IP-адрес VirtualBox вместо localhost.

Использование IP-адреса виртуального ящика и добавление сопоставления портов в файл compose должно решить проблему.

0 голосов
/ 07 марта 2019

порты и брандмауэр, проверьте это, потому что Docker создает собственную сеть

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