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
- Docker Desktop
- Visual Studio 2019 o versione successiva con il carico di lavoro Sviluppo Web, Strumenti di Azure e/o sviluppo per desktop .NET installato
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.
Aprire il file di progetto per il progetto in contenitori.
Per specificare un nuovo argomento della riga di comando, aggiungere la proprietà
DockerfileRunArguments
MSBuild e specificare la-v
sintassi o--mount
. Ad esempio, la sintassi seguente crea un volumemyvolume
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 .