Partager via


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

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.

  1. Ouvrez le fichier de projet du projet conteneurisé.

  2. 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 volume myvolume 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.