我要将我的asp.net核心1.0代码从Windows环境推送到远程Linux docker容器。基本上,容器将应用程序托管为服务器。
现在我在不同的博客中看到了ENTRYPOINT的不同配置。
ENTRYPOINT ["./kestrel"]
http://blog.dudak.me/2015/deploying-aspnet-5-applications-to-docker-containers/ ENTRYPOINT ["dnx", "-p", "project.json", "web"]
Cannot run asp.net 5 from docker ENTRYPOINT ["dnx", "./src/HelloMvc6", "kestrel"]
https://alexanderzeitler.com/articles/Running-ASP.NET-5-beta4-in-Docker-with-DNX-runtime/ ENTRYPOINT ["./web"]
醇>
我是码头工人的新手。我不知道差异,也不确定可以使用哪种差异。
答案 0 :(得分:4)
来自project.json
的各种命令或调用project.json
中命令的脚本。
如果您查看a project.json file,您会看到以下命令列表:
"commands": {
"gen": "Microsoft.Extensions.CodeGeneration",
"run": "run server.urls=http://localhost:5003",
"web": "Microsoft.AspNet.Server.Kestrel",
"kestrel": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:5004",
"weblistener": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5002"
},
此外,发布应用程序时,将生成带有命令名称的脚本。例如,对于kestrel
,dnx将生成kestrel
(unix)和kestrel.cmd
(窗口),它们仅使用参数dnx
调用kestrel
。
-p
的 dnx
指定要运行的项目。在较新版本的dnx
中,您不需要-p
;相反,传递的第一个参数是项目路径。
所以,在你的情况下:
ENTRYPOINT ["./kestrel"]
是调用dnx . kestrel
或dnx kestrel
的脚本。ENTRYPOINT ["dnx", "-p", "project.json", "web"]
使用参数dnx
(网络命令)调用-p project.json web
。ENTRYPOINT ["dnx", "./src/HelloMvc6", "kestrel"]
与2相同,但是kestrel
命令。ENTRYPOINT ["./web"]
与1相同,调用调用web
命令的脚本。