Condividi tramite


Personalizzare il mapping dei volumi dei contenitori

Per il funzionamento del debug nei contenitori, Visual Studio usa il mapping dei volumi per eseguire il mapping delle cartelle del debugger e NuGet dal computer host. Il mapping dei volumi è descritto nella documentazione di Docker qui. È possibile visualizzare i mapping dei volumi per un contenitore usando la finestra Contenitori in Visual Studio.

Prerequisiti

Montaggi di volumi nelle immagini del contenitore di Visual Studio

Ecco i volumi montati nel contenitore:

Volume Descrizione
Cartella dell'app Contiene la cartella del progetto in cui si trova il Dockerfile.
Cartelle dei pacchetti NuGet Contiene i pacchetti NuGet e le cartelle di fallback letti dal file obj{project}.csproj.nuget.g.props nel progetto.
Debugger remoto Contiene i bit necessari per eseguire il debugger nel contenitore a seconda del tipo di progetto. Vedere Personalizzare le immagini del contenitore per il debug.
Cartella di origine Contiene il contesto di compilazione passato ai comandi Docker.

Ecco i volumi montati nel contenitore. Gli elementi visualizzati nei contenitori potrebbero variare a seconda della versione secondaria di Visual Studio 2022 in uso.

Volume Descrizione
Cartella dell'app Contiene la cartella del progetto in cui si trova il Dockerfile.
Cartelle dei pacchetti NuGet Contiene i pacchetti NuGet e le cartelle di fallback letti dal file obj{project}.csproj.nuget.g.props nel progetto.
Debugger remoto Contiene i bit necessari per eseguire il debugger nel contenitore a seconda del tipo di progetto. Per altre informazioni, vedere Personalizzare le immagini del contenitore per il debug.
Cartella di origine Contiene il contesto di compilazione passato ai comandi Docker.
VSTools Contiene gli strumenti di Visual Studio che supportano l'uso del contenitore, tra cui il supporto per il debugger, la finestra Contenitori, la gestione dei token di Azure, l'agente Ricaricamento rapido e l'helper senza distribuzione.

Per .NET 8, potrebbero essere presenti anche punti di montaggio aggiuntivi alla radice e per l'utente dell'app che contengono segreti utente e il certificato HTTPS.

Nota

Visual Studio 17.10 Se si usa il motore Docker in sottosistema Windows per Linux (WSL) senza Docker Desktop, impostare la variabile VSCT_WslDaemon=1 di ambiente in modo che Visual Studio usi percorsi WSL durante la creazione di montaggi di volumi. È necessario anche il pacchetto NuGet Microsoft.VisualStudio.Azure.Containers.Tools.Targets 1.20.0-Preview 1 .

Per ASP.NET app Web di base, potrebbero essere presenti due cartelle aggiuntive per il certificato SSL e i segreti utente, spiegati in modo più dettagliato in Usare SSL per le app in contenitori ASP.NET Core

Montare un volume del contenitore

È possibile montare un altro volume usando docker run gli argomenti della riga di comando.

  1. Aprire il file di progetto per il progetto in contenitori.

  2. Per specificare un nuovo argomento della riga di comando, aggiungere la proprietà DockerfileRunArgumentsMSBuild e specificare la -v sintassi o --mount . Ad esempio, la sintassi seguente crea un volume myvolume e la monta nel contenitore nella cartella /scratch.

    <PropertyGroup>
       <DockerfileRunArguments>-v myvolume:/scratch</DockerfileRunArguments>
    </PropertyGroup>
    

    Vedere la documentazione di Docker per la sintassi della riga di comando per le opzioni -v o --mount .