Kik*_*sen 4 .net docker dockerfile
我陷入了死胡同.我有一个dotnet核心1.0.0应用程序我正在尝试启动和运行.它从linux和windows工作得很好.现在我想把它变成码头工人.我做了这个docker文件:
FROM microsoft/dotnet:1.0.0-preview2-sdk
COPY . /app
WORKDIR /app/app
RUN ["dotnet", "restore"]
ENTRYPOINT ["dotnet", "run"]
Run Code Online (Sandbox Code Playgroud)
它只是将代码复制到docker映像中的app文件夹并恢复依赖关系,然后运行它.当我尝试运行它时,它会启动,因为一切正常,打印的内容与Windows或Linux启动时相同.
用于运行项目的命令:
docker run --name dotNetWeb -p 8080:8080 kiksen1987/dotnetcore
Run Code Online (Sandbox Code Playgroud)
链接到代码:https: //github.com/kiksen1987/dotnetcore
链接到Docker镜像:https: //hub.docker.com/r/kiksen1987/dotnetcore/
我真的不知道出了什么问题.我或多或少采用了与99%的其他项目相同的方法.
任何改善这个问题的反馈都会很好:)
Kik*_*sen 12
最后.
我发现这篇博文:http://dotnetliberty.com/index.php/2015/11/26/asp-net-5-on-aws-ec2-container-service-in-10-steps/
尽管它使用了旧版本的dotnet核心,但我还是有一个重要的观点.
请注意,我已经为dnx web命令提供了一个额外的参数,告诉它在0.0.0.0(而不是默认的localhost)上提供服务.这将允许我们的Web应用程序处理来自Docker提供的端口转发的请求,默认为0.0.0.0.
这非常重要.
解:
var host = new WebHostBuilder()
.UseKestrel()
.UseStartup<Startup>()
.UseUrls("http://0.0.0.0:5000")
.Build();
Run Code Online (Sandbox Code Playgroud)
旧代码:
var host = new WebHostBuilder()
.UseKestrel()
.UseStartup<Startup>()
.UseUrls("http://localhost:5000")
.Build();
Run Code Online (Sandbox Code Playgroud)
这是非常令人沮丧的,因为它似乎在Linux和Windows和应用程序启动Docker中完美,但从未得到任何请求.希望这有助于其他一些可怜的灵魂:)
| 归档时间: |
|
| 查看次数: |
2158 次 |
| 最近记录: |