Personalizar la asignación de volúmenes en el contenedor
Para que la depuración funcione en contenedores, Visual Studio usa la asignación de volúmenes a fin de asignar el depurador y las carpetas de NuGet desde el equipo host. La asignación de volúmenes se describe en la documentación de Docker aquí. Puede ver las asignaciones de volúmenes de un contenedor mediante la ventana Contenedores de Visual Studio.
Prerrequisitos
- Docker Desktop
- Visual Studio 2019 o posterior con las cargas de trabajo Desarrollo web, Azure Tools o Desarrollo de escritorio de .NET instaladas
Montajes de volúmenes en imágenes de contenedores de Visual Studio
Estos son los volúmenes que se montan en el contenedor:
Volumen | Descripción |
---|---|
Carpeta de la aplicación | Contiene la carpeta del proyecto donde se encuentra el Dockerfile. |
Carpetas de paquetes NuGet | Contiene los paquetes NuGet y las carpetas de respaldo que se leen del archivo obj{project}.csproj.nuget.g.props del proyecto. |
Depurador remoto | Contiene los bits necesarios para ejecutar el depurador en el contenedor en función del tipo de proyecto. Consulte Personalización de imágenes de contenedor para depurar. |
carpeta de origen | Contiene el contexto de compilación que se pasa a los comandos de Docker. |
Estos son los volúmenes que se montan en el contenedor. Lo que ve en los contenedores puede diferir en función de la versión secundaria de Visual Studio 2022 que use.
Volumen | Descripción |
---|---|
Carpeta de la aplicación | Contiene la carpeta del proyecto donde se encuentra el Dockerfile. |
Carpetas de paquetes NuGet | Contienen los paquetes NuGet y las carpetas de reserva que se leen desde el archivo obj{project}.csproj.nuget.g.props del proyecto. |
Depurador remoto | Contiene los bits necesarios para ejecutar el depurador en el contenedor en función del tipo de proyecto. Para obtener más información, consulte Configurar imágenes de contenedores para depuración. |
carpeta de origen | Contiene el contexto de compilación que se pasa a los comandos de Docker. |
VSTools | Contiene herramientas de Visual Studio que admiten trabajar con contenedores, incluida la compatibilidad con el depurador, la ventana de Contenedores, el control de tokens de Azure, el agente de recarga activa y el asistente sin distribución. |
Para .NET 8, también pueden estar presentes puntos de montaje adicionales en la raíz y para el usuario de la aplicación que contienen secretos de usuario y el certificado HTTPS.
Nota
Visual Studio 17.10 Si utiliza Docker Engine en el Subsistema de Windows para Linux (WSL) sin Docker Desktop, establezca la variable de entorno VSCT_WslDaemon=1
para que Visual Studio utilice rutas de WSL al crear montajes de volúmenes. También se requiere el paquete NuGet Microsoft.VisualStudio.Azure.Containers.Tools.Targets 1.20.0-Preview 1.
Para ASP.NET aplicaciones web principales, puede haber dos carpetas adicionales para el certificado SSL y los secretos de usuario, que se explican con más detalle en Usar SSL para aplicaciones ASP.NET Core en contenedores
Montaje de un volumen de contenedor
Puede montar otro volumen utilizando argumentos de línea de comandos docker run
.
Abra el archivo de proyecto para el proyecto en contenedor.
Para especificar un nuevo argumento de línea de comandos, agregue la propiedad MSBuild
DockerfileRunArguments
y proporcione la sintaxis-v
o--mount
. Por ejemplo, la siguiente sintaxis crea un volumenmyvolume
y lo monta en el contenedor de la carpeta/scratch
.<PropertyGroup> <DockerfileRunArguments>-v myvolume:/scratch</DockerfileRunArguments> </PropertyGroup>
Consulte la documentación de Docker para obtener la sintaxis de la línea de comandos para las opciones de -v o --mount.