【发布时间】:2017-09-27 19:42:40
【问题描述】:
我正在尝试使用 ASP.Net Core 和 Docker 设置开发环境。图像构建正确,容器运行没有问题。但是,即使我已将主机和容器的端口都指定为 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 应用程序模板。这是我的 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
有人可以指出我缺少什么吗?
其他问题
我将如何继续在 Docker 容器中运行 Dotnet Watcher Tools,更具体地说是运行 dotnet watch run 并监视已安装卷 ./ms1 中的文件更改?
提前致谢,非常感谢任何帮助。
【问题讨论】:
-
似乎它正在监听 80,但您正在尝试访问 5000。最简单的解决方案可能只是将 5000 重定向到
docker-compose.yml中的 80。 -
我尝试在docker-compose.yml中更改端口,但结果是一样的。
-
如果您从控制台执行
dotnet run --server.urls "http://0.0.0.0:5000",端口是否已更改?--server.urls仅在您明确启用从 args 读取配置(在设置 WebHost 时)时才有效。你加.AddCommandLine(args)了吗?如果需要样品,请查看WebHostBuilder. How to set url address using CommandLine in .NET-Core 2.0。 -
考虑单独询问您的 dotnet-watch 问题。每个帖子最好有一个问题,这样答案就可以保持重点。
标签: docker asp.net-core docker-compose dockerfile