Docker Container Прослушивание http://[::]:80 - PullRequest
0 голосов
/ 26 июня 2018

Я работаю над настройкой двух контейнеров Docker, используя Docker для Windows.Простое веб-приложение на основе узлов и API-интерфейс ядра dotnet.Я запускаю оба этих контейнера, используя «docker-compose up».Приложение нода отлично запускается, и я могу попасть по открытому URL, однако приложение dotnet, похоже, не работает.

Вывод команды docker-compose up приведен ниже:

application.client_1  | INFO: Accepting connections at http://localhost:8080
application.api_1     | warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
application.api_1     |       No XML encryptor configured. Key {cc83a8ac-e1de-4eb3-95ab-8c69a5961bf9} may be persisted to storage in unencrypted form.
application.api_1     | Hosting environment: Development
application.api_1     | Content root path: /app/application.Api
application.api_1     | Now listening on: http://[::]:80
application.api_1     | Application started. Press Ctrl+C to shut down.

Файл Docker выглядит следующим образом:

FROM microsoft/dotnet AS build
WORKDIR /app
ENV PORT=8081

COPY application.Api/application.Api.csproj application.Api/
COPY application.Business/application.Business.csproj application.Business/
COPY application.DataAccess/application.DataAccess.csproj application.DataAccess/
COPY application.DataModel/application.DataModel.csproj application.DataModel/
WORKDIR /app/application.Api
RUN dotnet restore

WORKDIR /app/
COPY application.Api/. ./application.Api/
COPY application.Business/. ./application.Business/
COPY application.DataAccess/. ./application.DataAccess/
COPY application.DataModel/. ./application.DataModel/
WORKDIR /app/application.Api
RUN dotnet publish -c Release -o out

FROM microsoft/dotnet AS runtime
WORKDIR /app/application.Api
COPY --from=build /app/application.Api/out .
ENTRYPOINT ["dotnet", "application.Api.dll" ]
EXPOSE $PORT

Я не могу получить IP и, таким образом, попал в URL API.Любые мысли будут высоко оценены, так как я довольно новичок в Docker.


ОБНОВЛЕНИЕ 1: Составить YML

version: '3.4'

services:
  tonquin.api:
    image: application.api
    ports: 
      - 8081:5000
    build:
      context: .
      dockerfile: Dockerfile

  tonquin.client:
    image: application.client
    ports: 
      - 8080:8080
    build:
      context: .
      dockerfile: ../application.Client/Dockerfile     

1 Ответ

0 голосов
/ 26 июня 2018

Он пытается использовать протокол IPv6 в сетевом интерфейсе.Отключите IPv6 и перезапустите докер.Похоже, что оба приложения пытаются использовать порт 80. Вы можете обслуживать только один элемент на указанном порту с заданным интерфейсом / IP.Попробуйте настроить API для использования другого номера порта, например 8080.

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