设置容器入口点
容器入口点是一个配置为在容器启动时运行的进程。
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 Web 应用,入口点略有不同,会向命令添加 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 属性 - 自定义应用启动过程。