设置容器入口点
容器入口点是一个进程,该进程配置为在启动容器时运行。
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 属性 - 自定义应用启动过程。