Anpassen der Containervolumezuordnung
Damit das Debuggen in Containern funktioniert, verwendet Visual Studio die Volumezuordnung, um den Debugger und die NuGet-Ordner vom Hostcomputer zuzuordnen. Die Volumezuordnung ist in der Docker-Dokumentation beschrieben. Sie können die Volume-Zuordnungen für einen Container anzeigen, indem Sie das Fenster Container in Visual Studioverwenden.
Voraussetzungen
- Docker Desktop
- Visual Studio 2019 oder höher mit installierter Webentwicklung, Azure Tools Workload und/oder .NET-Desktopentwicklung Workload
Volumebereitstellungen in Visual Studio-Containerimages
Dies sind die Volumes, die in Ihrem Container bereitgestellt werden:
Volumen | Beschreibung |
---|---|
App-Ordner | Enthält den Projektordner, in dem sich die Dockerfile-Datei befindet. |
NuGet-Paketordner | Enthält die NuGet-Pakete und Fallbackordner, die aus der obj{project}.csproj.nuget.g.props Datei im Projekt gelesen werden. |
Remotedebugger | Enthält die Bits, die zum Ausführen des Debuggers im Container erforderlich sind, abhängig vom Projekttyp. Weitere Informationen finden Sie unter Anpassen von Containerimages zum Debuggen. |
Quellordner | Enthält den Buildkontext, der an Docker-Befehle übergeben wird. |
Dies sind die Volumes, die in Ihrem Container bereitgestellt werden. Was in Ihren Containern angezeigt wird, hängt möglicherweise von der Nebenversion von Visual Studio 2022 ab, die Sie verwenden.
Volumen | Beschreibung |
---|---|
App-Ordner | Enthält den Projektordner, in dem sich die Dockerfile-Datei befindet. |
NuGet-Paketordner | Enthält die NuGet-Pakete und Fallbackordner, die aus der obj{project}.csproj.nuget.g.props Datei im Projekt gelesen werden. |
Remotedebugger | Enthält die Bits, die zum Ausführen des Debuggers im Container erforderlich sind, abhängig vom Projekttyp. Weitere Informationen finden Sie unter Anpassen von Containerimages zum Debuggen. |
Quellordner | Enthält den Buildkontext, der an Docker-Befehle übergeben wird. |
VSTools | Enthält Visual Studio-Tools, die das Arbeiten mit dem Container unterstützen, einschließlich Unterstützung für den Debugger, die Container Fenster, die Behandlung von Azure-Token, der Hot Reload-Agent und der Distroless Helper. |
Für .NET 8 können zusätzliche Bereitstellungspunkte im Stammverzeichnis und für die App-Benutzenden ebenfalls vorhanden sein, die Benutzergeheimnisse und das HTTPS-Zertifikat enthalten.
Anmerkung
Visual Studio 17.10 Wenn Sie das Docker-Modul im Windows-Subsystem für Linux (WSL) ohne Docker Desktop verwenden, legen Sie die Umgebungsvariable VSCT_WslDaemon=1
fest, damit Visual Studio WSL-Pfade beim Erstellen von Volume mounts verwendet. Das NuGet-Paket Microsoft.VisualStudio.Azure.Containers.Tools.Targets 1.20.0-Preview 1 ist ebenfalls erforderlich.
Für ASP.NET Core-Web-Apps gibt es möglicherweise zwei zusätzliche Ordner für das SSL-Zertifikat und die Benutzergeheimnisse, die unter Verwenden von SSL für containerisierte ASP.NET Core-Apps ausführlicher erklärt werden.
Bereitstellen eines Containervolumes
Sie können ein weiteres Volume mit den docker run
-Befehlszeilenargumenten bereitstellen.
Öffnen Sie die Projektdatei für das containerisierte Projekt.
Um ein neues Befehlszeilenargument anzugeben, fügen Sie die MSBuild-Eigenschaft
DockerfileRunArguments
hinzu, und stellen Sie die syntax-v
oder--mount
bereit. Ein Beispiel: Die folgende Syntax erstellt ein Volumemyvolume
und stellt es im Container im Ordner/scratch
bereit.<PropertyGroup> <DockerfileRunArguments>-v myvolume:/scratch</DockerfileRunArguments> </PropertyGroup>
In der Docker-Dokumentation finden Sie die Befehlszeilensyntax für die Optionen -v oder -mount.