首页 > 解决方案 > docker-compose up 不监听指定端口

问题描述

当我运行时docker-compose up,它告诉我它正在侦听 localhost 端口 5000,尽管我的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

docker-compose.override.yml

version: '3'

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

Dockerfile:

...

EXPOSE 80

...

我错过了什么会强制docker-compose up监听 yml 中指定的端口?

标签: dockerdocker-compose

解决方案


启动 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"

推荐阅读