Personnaliser le mappage de volumes de conteneur
Pour que le débogage fonctionne dans des conteneurs, Visual Studio utilise le mappage de volume pour mapper le débogueur et les dossiers NuGet à partir de l’ordinateur hôte. Le mappage de volume est décrit dans la documentation Docker ici. Vous pouvez afficher les mappages de volumes pour un conteneur à l’aide de la fenêtre Conteneurs dans Visual Studio.
Prérequis
- Docker Desktop
- Visual Studio 2019 ou une version ultérieure avec la charge de travail Développement web, Outils Azure et/ou la charge de travail Développement .NET Desktop installée
Montages de volumes dans des images de conteneur Visual Studio
Voici les volumes montés dans votre conteneur :
Volume | Description |
---|---|
Dossier d’application | Contient le dossier de projet où se trouve le fichier Dockerfile. |
Dossiers de packages NuGet | Contient les packages NuGet et les dossiers de secours qui sont lus à partir du fichier obj{project}.csproj.nuget.g.props dans le projet. |
Débogueur distant | Contient les éléments nécessaires pour exécuter le débogueur dans le conteneur en fonction du type de projet. Consultez l’article Personnaliser les images de conteneur pour le débogage. |
Dossier source | Contient le contexte de génération qui est passé aux commandes Docker. |
Voici les volumes montés dans votre conteneur. Ce que vous voyez dans vos conteneurs peut différer en fonction de la version mineure de Visual Studio 2022 que vous utilisez.
Volume | Description |
---|---|
Dossier d’application | Contient le dossier de projet où se trouve le fichier Dockerfile. |
Dossiers de packages NuGet | Contient les packages NuGet et les dossiers de secours qui sont lus à partir du fichier obj{project}.csproj.nuget.g.props dans le projet. |
Débogueur distant | Contient les éléments nécessaires pour exécuter le débogueur dans le conteneur en fonction du type de projet. Pour plus d’informations, consultez l’article Personnaliser les images de conteneur pour le débogage. |
Dossier source | Contient le contexte de génération qui est passé aux commandes Docker. |
VSTools | Contient les outils Visual Studio qui prennent en charge l’utilisation du conteneur, notamment la prise en charge du débogueur, la fenêtre Conteneurs, la gestion des jetons Azure, l’agent de Rechargement à chaud et le Distroless Helper. |
Pour .NET 8, des points de montage supplémentaires à la racine et pour l'utilisateur de l'application qui contiennent des secrets d'utilisateur et le certificat HTTPS peuvent également être présents.
Remarque
Visual Studio 17.10 Si vous utilisez le moteur Docker dans le Sous-système Windows pour Linux (WSL) sans Docker Desktop, définissez la variable d’environnement VSCT_WslDaemon=1
pour que Visual Studio utilise des chemins WSL lors de la création de montages de volumes. Le package NuGet Microsoft.VisualStudio.Azure.Containers.Tools.Targets 1.20.0-Préversion 1 est également requis.
Pour les applications web ASP.NET Core, il peut y avoir deux dossiers supplémentaires pour le certificat SSL et les secrets utilisateur, ce qui est expliqué plus en détail dans Utiliser SSL pour les applications ASP.NET Core conteneurisées
Monter un volume de conteneur
Vous pouvez monter un autre volume à l’aide d’arguments de ligne de commande docker run
.
Ouvrez le fichier de projet du projet conteneurisé.
Pour spécifier un nouvel argument de ligne de commande, ajoutez la propriété MSBuild
DockerfileRunArguments
et fournissez la syntaxe-v
ou--mount
. La syntaxe suivante, par exemple, crée un volumemyvolume
et le monte dans le conteneur du dossier/scratch
.<PropertyGroup> <DockerfileRunArguments>-v myvolume:/scratch</DockerfileRunArguments> </PropertyGroup>
Reportez-vous à la documentation Docker pour la syntaxe de ligne de commande des options -v ou --mount.