Nie*_*erg 1 docker kestrel-http-server asp.net-core
嗨,人们已经关注这个问题太久了,需要一些帮助。
我制作了一个 ASP.NET 核心网站,只是与 VS 2017 (v 1.1) 配套的模板而已。我使用 dotnet core cli 发布站点并使用此 dockerfile 构建图像:
FROM microsoft/dotnet:1.1-runtime
COPY /Publish /dotnetapp
WORKDIR /dotnetapp
EXPOSE 8444
ENTRYPOINT ["dotnet", "Inqu.dll"]
Run Code Online (Sandbox Code Playgroud)
当我运行创建的图像时:
docker run -it <image_name:tag> -p 8444:8444
Run Code Online (Sandbox Code Playgroud)
图像启动等待请求:
Hosting environment: Production
Content root path: /dotnetapp
Now listening on: http://*:8444
Application started. Press Ctrl+C to shut down.
Run Code Online (Sandbox Code Playgroud)
但是我无法访问该站点并在尝试访问该站点时收到 ERR_CONNECTION_REFUSED 认为http://local-ip:8444/
我已将 WebHostBuild 修改为:
var host = new WebHostBuilder()
.UseKestrel()
.UseUrls("http://*:8444")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.UseApplicationInsights()
.Build();
host.Run();
Run Code Online (Sandbox Code Playgroud)
所以它应该监听8444端口,我也试过设置:
ENV ASPNETCORE_URLS http://*:8444
Run Code Online (Sandbox Code Playgroud)
在 Dockerfile 中,但它没有帮助。
我在 docker 中启动并运行了一些其他图像(gogs 和 mysql),我可以使用本地 ip:port 访问它们,没有问题,但我无法连接到 kestrel 服务器。
有人可以帮我吗?
是一个愚蠢的错误争论的顺序是错误的
docker run -it -p 8444:8444 <image_name:tag>
Run Code Online (Sandbox Code Playgroud)
它起作用了:\
| 归档时间: |
|
| 查看次数: |
1607 次 |
| 最近记录: |