设置容器入口点

容器入口点是一个进程,该进程配置为在启动容器时运行。

Visual Studio 根据项目类型和容器操作系统使用自定义容器入口点,下面是不同的组合:

容器类型 入口点
Linux 容器 入口点为 tail -f /dev/null,表示无限等待,从而使容器保持运行。 通过调试器启动应用时,是调试器负责运行该应用(即 dotnet webapp.dll)。 如果在未调试的情况下启动,该工具将运行 docker exec -i {containerId} dotnet webapp.dll 来运行应用。
Windows 容器 入口点类似于用于运行调试程序的 C:\remote_debugger\x64\msvsmon.exe /noauth /anyuser /silent /nostatus,因此它侦听连接。 当调试器运行应用时,此方法适用。 在未调试的情况下启动时,将使用 docker exec 命令。 对于 .NET Framework 网页应用,入口点略有不同,其中会在命令中添加 ServiceMonitor
容器类型 入口点
Linux 容器 对于 .NET 6 及更高版本,入口点是 dotnet --roll-forward Major /VSTools/DistrolessHelper/DistrolessHelper.dll --wait。 对于 .NET 5 及更早版本,入口点是 tail -f /dev/null。 当应用未运行时,这些进程使用无限等待来保持容器运行。 在应用启动时,无论是否进行调试,都由调试器负责运行应用(即dotnet webapp.dll)并保持容器运行。
Windows 容器 入口点类似于用于运行调试程序的 C:\remote_debugger\x64\msvsmon.exe /noauth /anyuser /silent /nostatus,因此它侦听连接。 对于 .NET Framework Web 应用程序,入口点略有不同,在命令中添加了 ServiceMonitor

容器入口点只能在 Docker Compose 项目中修改,而不能在单容器项目中修改。 请参阅 Docker Compose 属性 - 自定义应用启动过程