docker-compose не прослушивает указанный порт - PullRequest
0 голосов
/ 04 мая 2019

Когда я запускаю docker-compose up, он сообщает мне, что прослушивает локальный порт 5000, несмотря на конфигурацию порта 80 в моем файле docker-compose.override.yml, и несмотря на то, что порт 80 отображается в Dockerfile.

Я также пытался установить порт в docker-compose.yml, но по-прежнему используется порт 5000

.

докер-compose.yml

version: '3'

services:
  myapp:
    image: me/myapp
    environment:
      - ASPNETCORE_ENVIRONMENT=Production
    build:
      context: .
      dockerfile: MyApp.API/Dockerfile

докер-compose.override.yml

version: '3'

services:
  myapp:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    ports:
      - "80:80"

Dockerfile:

...

EXPOSE 80

...

Чего мне не хватает, что заставит docker-compose up прослушивать порт, указанный в yml?

Ответы [ 2 ]

0 голосов
/ 05 мая 2019

Инструкция EXPOSE в Dockerfile фактически не публикует порт. Он функционирует как тип документации между человеком, который создает образ, и человеком, который запускает контейнер, о том, какие порты предназначены для публикации. Чтобы действительно опубликовать порт при запуске контейнера, используйте флаг -p на панели запуска Docker, чтобы опубликовать и сопоставить один или несколько портов, или флаг -P, чтобы опубликовать все открытые порты и сопоставить их с портами высокого порядка.

В вашем случае все управление осуществляется через docker compose, и я не буду беспокоиться о том, чтобы увидеть порт 5000, так как он все еще будет недоступен.

0 голосов
/ 04 мая 2019

Важно, с какой конфигурацией вы запускаете приложение ASP.NET.Вы можете сделать это, поместив его в среду следующим образом:

Dockerfile

ENV ASPNETCORE_URLS=http://*:80

В качестве альтернативы вы также можете определить его в своем docker-compose.yml:

version: '3'

services:
  myapp:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=http://*:80
    ports:
      - "80:80"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...