共用方式為


設定容器進入點

容器進入點是設定為在容器啟動時執行的程式。

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 屬性 -自定義應用程式啟動程式。