当我运行docker-compose up时,它告诉我它侦听本地主机端口5000,尽管在我的docker-compose.override.yml文件中配置端口80,在Dockerfile中公开端口80。
我也尝试过在docker-compose.yml中设置端口,但它仍然默认为端口5000
docker-compose.yml
version: '3'
services:
myapp:
image: me/myapp
environment:
- ASPNETCORE_ENVIRONMENT=Production
build:
context: .
dockerfile: MyApp.API/Dockerfiledocker-compose.override.yml
version: '3'
services:
myapp:
environment:
- ASPNETCORE_ENVIRONMENT=Development
ports:
- "80:80"Dockerfile:
...
EXPOSE 80
...我遗漏了什么来迫使docker-compose up在yml中指定的端口上侦听?
发布于 2019-05-04 20:14:05
启动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"发布于 2019-05-04 21:51:29
Dockerfile中的公开指令实际上并不发布端口。它作为构建映像的人和运行容器的人之间的一种文档类型,而这些港口将被发布。要在运行容器时实际发布端口,请在运行的码头上使用-p标志发布和映射一个或多个端口,或者使用-P标志发布所有公开的端口,并将它们映射到高级端口。
在您的例子中,所有的控制都是通过坞编写完成的,我不担心看到端口5000,因为它仍然无法访问。
https://stackoverflow.com/questions/55986302
复制相似问题