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 Dokumentation zu Docker beschrieben. Sie können die Volumezuordnungen für einen Container anzeigen, indem Sie das Fenster Container in Visual Studio verwenden.
Voraussetzungen
- Docker Desktop
- Visual Studio 2019 oder höher mit den installierten Workloads Webentwicklung, Azure-Tools und/oder .NET Desktop-Entwicklung
Volumebereitstellungen in Visual Studio-Containerimages
Hier sind die Volumes, die in Ihrem Container bereitgestellt werden:
Lautstärke | Beschreibung |
---|---|
App-Ordner | Enthält den Projektordner, in dem sich die Dockerfile befindet. |
Ordner mit NuGet-Paketen | Enthalten die NuGet-Pakete und Fallbackordner, die aus der Datei obj{project}.csproj.nuget.g.props in das Projekt eingelesen werden. |
Remotedebugger | Enthält die Bits, die abhängig vom Projekttyp erforderlich sind, um den Debugger im Container auszuführen. Siehe Anpassen von Containerimages für das Debuggen. |
Quellordner | Enthält den Buildkontext, der an Docker-Befehle übergeben wird. |
Hier 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, die Sie verwenden, ab.
Lautstärke | Beschreibung |
---|---|
App-Ordner | Enthält den Projektordner, in dem sich die Dockerfile befindet. |
Ordner mit NuGet-Paketen | Enthalten die NuGet-Pakete und Fallbackordner, die aus der Datei obj{project}.csproj.nuget.g.props in das Projekt eingelesen werden. |
Remotedebugger | Enthält die Bits, die abhängig vom Projekttyp erforderlich sind, um den Debugger im Container auszuführen. Weitere Informationen finden Sie unter Anpassen von Containerimages für das 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, das Fenster Container, die Behandlung von Azure-Token, den Hot Reload-Agent und das Hilfsprogramm ohne Distribution. |
Bei .NET 8 können auch zusätzliche Einhängepunkte bei Root und für den App-Benutzer vorhanden sein, die Benutzergeheimnisse und das HTTPS-Zertifikat enthalten.
Hinweis
Visual Studio 17.10 Wenn Sie im Windows-Subsystem für Linux (WSL) die Docker-Engine ohne Docker Desktop verwenden, legen Sie die Umgebungsvariable VSCT_WslDaemon=1
fest, damit Visual Studio beim Erstellen von Volumebereitstellungen WSL-Pfade verwendet. The NuGet package Microsoft.VisualStudio.Azure.Containers.Tools.Targets 1.20.0-Vorschau 1 ist ebenfalls erforderlich.
Bei ASP.NET Core-Web-Apps gibt es möglicherweise zwei zusätzliche Ordner für das SSL-Zertifikat und die Benutzergeheimnisse. Dies wird unter Verwenden von SSL für containerisierte ASP.NET Core-Apps ausführlicher erläutert.
Bereitstellen eines Containervolumes
Sie können ein anderes Volume mithilfe von 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-v
- oder--mount
-Syntax bereit. Mit der folgenden Syntax wird beispielsweise einmyvolume
-Volume erstellt und im Container im Ordner/scratch
bereitgestellt.<PropertyGroup> <DockerfileRunArguments>-v myvolume:/scratch</DockerfileRunArguments> </PropertyGroup>
Die Befehlszeilensyntax für die Optionen -v oder --mount finden Sie in der Docker-Dokumentation.