了解docker中的ENTRYPOINT
我将把我的asp.net核心1.0代码从Windows环境推送到远程Linux docker容器。 基本上容器将作为服务器托pipe应用程序。
现在我在不同的博客中看到了ENTRYPOINT的不同configuration。
-
ENTRYPOINT ["./kestrel"]
在http://blog.dudak.me/2015/deploying-aspnet-5-applications-to-docker-containers/ -
ENTRYPOINT ["dnx", "-p", "project.json", "web"]
at 不能从docker运行asp.net 5 -
ENTRYPOINT ["dnx", "./src/HelloMvc6", "kestrel"]
在https://alexanderzeitler.com/articles/Running-ASP.NET-5-beta4-in-Docker-with-DNX-runtime/ -
ENTRYPOINT ["./web"]
如果使用http://www.hanselman.com/blog/PublishingAnASPNET5AppToDockerOnLinuxWithVisualStudio.aspx
我是docker工人。 我不知道这些差异,也不确定哪一个可以使用。
这些是来自project.json
各种命令或调用project.json
命令的脚本。
如果您查看一个project.json文件,您将看到如下所示的命令列表:
"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
(windows),它们只是用参数dnx
调用dnx
。
-p
传递给dnx
指定要运行的项目。 在较新版本的dnx
您不需要-p
; 而是传递的第一个参数是项目path。
所以,在你的情况下:
-
ENTRYPOINT ["./kestrel"]
是调用dnx . kestrel
的脚本dnx . kestrel
dnx . kestrel
或dnx kestrel
。 -
ENTRYPOINT ["dnx", "-p", "project.json", "web"]
用参数-p project.json web
(web命令)调用dnx
。 -
ENTRYPOINT ["dnx", "./src/HelloMvc6", "kestrel"]
与2相同,但ENTRYPOINT ["dnx", "./src/HelloMvc6", "kestrel"]
命令。 -
ENTRYPOINT ["./web"]
与1相同,调用调用web
命令的脚本。
- Visual Studio团队服务失败任务Docker生成
- 在Windows 10中创buildAsp.net项目的Dockerfile,Docker镜像,以及如何在Docker集线器上推送该镜像并获取url来运行项目
- AWS Linux中的ASP.NETexception
- 无法使用Docker在Azure上的VM上部署ASP .net vnext应用程序
- VSTS任务 – .NET核心发布 – 生成错误
- 无法从Docker容器打开URL
- ASP NET核心:docker-compose中的别名不会出现在/ etc / hosts中
- Dotnet Core从Mac发布到IIS
- .Net Core与EC2教程中的Docker问题