我正在尝试使用ASP.Net Core和Docker Build 开发环境 . 图像构建正确,容器运行没有问题 . 但是,即使我已经为主机和容器指定了5000的端口,dotnet仍然在一个既不包含指定端口也不可访问的URL上启动服务器 . 我期待听众在: http://localhost:5000
docker-compose up
结果:
Recreating netcore_ms1_1 ...
Recreating netcore_ms1_1 ... done
Attaching to netcore_ms1_1
ms1_1 | Hosting environment: Production
ms1_1 | Content root path: /app
ms1_1 | Now listening on: http://[::]:80
ms1_1 | Application started. Press Ctrl+C to shut down.
我的应用程序只是一个示例 dotnet new web
app模板 . 这是我的Dockerfile和docker-compose.yml文件:
Dockerfile
FROM microsoft/aspnetcore-build:2.0.0-jessie
WORKDIR /app
EXPOSE 5000
ENTRYPOINT ["dotnet", "run", "--server.urls", "http://0.0.0.0:5000"]
docker-compose.yml
version: '3'
services:
ms1:
build: ./ms1
ports:
- "5000:5000"
volumes:
- ./ms1:/app:Z
有人能向我指出我错过了什么吗?
Additional question
我将如何继续在Docker容器中运行Dotnet Watcher Tools,更具体地说,运行 dotnet watch run
并监视已安装卷./ms1中的文件更改?
在此先感谢,非常感谢任何帮助 .
1 回答
使用
microsoft/aspnetcore-build
或microsoft/aspnetcore
时,图像已预先配置为公开端口80.请改为启动容器:在命令行上,
或者在docker-compose.yml中,
此默认值来自
microsoft/aspnetcore
images的定义,它将ASPNETCORE_URL
环境变量设置为http://+:80
.见https://github.com/aspnet/aspnet-docker/blob/v2.0.0/2.0/jessie/runtime/Dockerfile#L4