Festlegen des Containereinstiegspunkts
Ein Containereinstiegspunkt ist ein Prozess, der so konfiguriert ist, dass er beim Starten eines Containers ausgeführt wird.
Visual Studio verwendet einen benutzerdefinierten Containereinstiegspunkt abhängig vom Projekttyp und Containerbetriebssystem. Es folgen die verschiedenen Kombinationen:
Containertyp | Einstiegspunkt |
---|---|
Linux-Container | Der Einstiegspunkt ist tail -f /dev/null . Dabei handelt es sich um eine unbegrenzte Wartezeit, um den Container aktiv zu halten. Wenn die App über den Debugger gestartet wird, ist der Debugger für die Ausführung der App verantwortlich (d. h. dotnet webapp.dll ). Bei Starten ohne Debuggen führt das Tool docker exec -i {containerId} dotnet webapp.dll aus, um die App auszuführen. |
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. Diese Methode gilt, wenn der Debugger die App ausführt. Beim Starten ohne Debuggen wird ein docker exec -Befehl verwendet. Bei .NET Framework-Web-Apps ist der Einstiegspunkt etwas anders, da ServiceMonitor zum Befehl hinzugefügt wird. |
Containertyp | Einstiegspunkt |
---|---|
Linux-Container | Für .NET 6 und höher lautet der Einstiegspunkt dotnet --roll-forward Major /VSTools/DistrolessHelper/DistrolessHelper.dll --wait . Für .NET 5 und früher lautet der Einstiegspunkt tail -f /dev/null . Diese Prozesse verwenden eine unendliche Wartezeit, damit der Container weiter ausgeführt wird, wenn die App nicht ausgeführt wird. Wenn die App mit oder ohne Debuggen gestartet wird, ist der Debugger für die Ausführung der App (d. h. dotnet webapp.dll ) und für die weitere Ausführung des Containers verantwortlich. |
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 ist der Einstiegspunkt etwas anders, da ServiceMonitor zum Befehl hinzugefügt wird. |
Der Containereinstiegspunkt kann nur in Docker-Compose-Projekten, nicht in Einzelcontainerprojekten geändert werden. Siehe Docker Compose-Eigenschaften – Anpassen des App-Startvorgangs.