docker - 了解docker中的ENTRYPOINT

标签 docker asp.net-core

我要将我的 asp.net core 1.0 代码从 Windows 环境推送到远程 Linux docker 容器。基本上容器将作为服务器托管应用程序。

现在我在不同的博客中看到了 ENTRYPOINT 的不同配置。

  1. ENTRYPOINT ["./kestrel"] 位于 http://blog.dudak.me/2015/deploying-aspnet-5-applications-to-docker-containers/
  2. ENTRYPOINT ["dnx", "-p", "project.json", "web"] 位于 Cannot run asp.net 5 from docker
  3. ENTRYPOINT ["dnx", "./src/HelloMvc6", "kestrel"] 位于 https://alexanderzeitler.com/articles/Running-ASP.NET-5-beta4-in-Docker-with-DNX-runtime/
  4. ENTRYPOINT ["./web"] 如果使用 http://www.hanselman.com/blog/PublishingAnASPNET5AppToDockerOnLinuxWithVisualStudio.aspx

我是 docker 的新手。我不知道其中的差异,也不确定可以使用哪一个。

最佳答案

这些是来自 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 (windows),后者仅调用 dnx > 带有参数 kestrel

传递给 dnx

-p 指定要运行的项目。在较新版本的 dnx 中,您不需要 -p;相反,传递的第一个参数是项目路径。

所以,就你的情况而言:

  1. ENTRYPOINT ["./kestrel"] 是调用 dnx 的脚本。 kestreldnx kestrel
  2. ENTRYPOINT ["dnx", "-p", "project.json", "web"] 使用参数 -p project 调用 dnx。 json web(Web 命令)。
  3. ENTRYPOINT ["dnx", "./src/HelloMvc6", "kestrel"] 与 2 相同,但使用 kestrel 命令。
  4. ENTRYPOINT ["./web"] 与 1 相同,调用调用 web 命令的脚本。

关于docker - 了解docker中的ENTRYPOINT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36373873/

相关文章:

ruby - Docker 容器发送空响应

docker - 如何单独获取Docker容器ID

python - 远程调试在 docker 容器中运行的 python 代码的最佳和简单方法是什么?

jquery - Ajax Post 请求始终将 null 对象传递给 MVC Controller

python - 如何在无需键入python3的情况下将Python程序转换为CLI?

docker - 什么是 docker 子镜像

c# - 在单个 ASP.NET Core 3.1 Web API 中管理两个 SPA;一个在根目录中,另一个在 "admin"路由中

c# - 具有参数和DI的ASP.Net Core筛选器

asp.net-core - 是否可以使用 Core SignalR 进行音频或视频通信

c# - 提供非默认架构时如何禁用默认身份验证方案