Freigeben über


Festlegen des Containereinstiegspunkts

Ein Containereinstiegspunkt ist ein Prozess, der so konfiguriert ist, dass er ausgeführt wird, wenn ein Container gestartet wird.

Voraussetzungen

Voraussetzungen

  • Docker Desktop.
  • Visual Studio mit installierter ASP.NET- und Webentwicklung, Azure-Entwicklungsarbeitsauslastung und/oder .NET-Desktopentwicklungsworkload .

Einstiegspunkt nach Projekttyp

Visual Studio verwendet je nach Projekttyp und Containerbetriebssystem einen benutzerdefinierten Containereinstiegspunkt: Hier sind die verschiedenen Kombinationen:

Containertyp Eingangsstelle
Linux-Container Für .NET 6 und höher ist der Einstiegspunkt dotnet --roll-forward Major /VSTools/DistrolessHelper/DistrolessHelper.dll --wait. Für .NET 5 und früher ist der Einstiegspunkt tail -f /dev/null. Diese Prozesse verwenden eine unendliche Wartezeit, damit der Container ausgeführt wird, wenn die App nicht ausgeführt wird. Wenn die App gestartet wird, sowohl mit als auch ohne Debugging, ist der Debugger dafür verantwortlich, die App auszuführen (d. h. dotnet webapp.dll) und den Container am Laufen zu halten.
Windows-Container Der Einstiegspunkt ist so etwas wie C:\remote_debugger\x64\msvsmon.exe /noauth /anyuser /silent /nostatus, womit der Debugger so ausgeführt wird, dass er auf Verbindungen lauscht. Bei .NET Framework-Web-Apps unterscheidet sich der Einstiegspunkt geringfügig, wobei ServiceMonitor dem Befehl hinzugefügt wird.
Containertyp Eingangsstelle
Linux-Container Für .NET 6 und höher ist der Einstiegspunkt dotnet --roll-forward Major /VSTools/DistrolessHelper/DistrolessHelper.dll --wait. Für .NET 5 und früher ist der Einstiegspunkt tail -f /dev/null. Diese Prozesse verwenden eine unendliche Wartezeit, damit der Container ausgeführt wird, wenn die App nicht ausgeführt wird. Wenn die App gestartet wird, mit oder ohne Debuggen, ist der Debugger für die Ausführung der App verantwortlich (das heißt, dotnet webapp.dll). DistrolessHelper überwacht den App-Prozess und endet mit dem Exit-Code der App, wenn der App-Prozess beendet wird.
Windows-Container Der Einstiegspunkt ist so etwas wie C:\remote_debugger\x64\msvsmon.exe /noauth /anyuser /silent /nostatus, womit der Debugger so ausgeführt wird, dass er auf Verbindungen lauscht.

Der Containereinstiegspunkt kann nur in Docker Compose-Projekten und nicht in Einzelcontainerprojekten geändert werden. Siehe Docker Compose-Eigenschaften – Anpassen des App-Startvorgangs.