【问题标题】:"dotnet run" in Docker Container results in inaccessible urlDocker 容器中的“dotnet run”导致无法访问 url
【发布时间】: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


【解决方案1】:

当使用microsoft/aspnetcore-buildmicrosoft/aspnetcore 时,映像已预先配置为公开端口80。改为这样启动您的容器:

FROM microsoft/aspnetcore-build:2.0.0-jessie
WORKDIR /app
ENTRYPOINT ["dotnet", "run"]

在命令行上,

docker run -p 5000:80

或者在docker-compose.yml中,

ports: 
  - "5000:80"

此默认值来自microsoft/aspnetcore 图像的定义,它将ASPNETCORE_URL 环境变量设置为http://+:80

ENV ASPNETCORE_URLS http://+:80

https://github.com/aspnet/aspnet-docker/blob/v2.0.0/2.0/jessie/runtime/Dockerfile#L4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 2016-03-18
    • 2018-08-09
    • 1970-01-01
    • 2019-10-05
    相关资源
    最近更新 更多