共用方式為


設定容器進入點

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

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 屬性 - 自訂應用程式啟動過程