Compartir a través de


Personalización de la asignación de volúmenes de 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.

Requisitos previos

Montajes de volúmenes en imágenes de contenedor 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 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. Consulte Personalización de imágenes de contenedor para la depuración.
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 se ve en los contenedores podría 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 Personalización de imágenes de contenedor para la 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 permiten trabajar con el contenedor, incluida la compatibilidad con el depurador, la ventana Contenedores, el control de tokens de Azure, el agente de Recarga activa y el asistente sin distribución.

En .NET 8, también podrían haber puntos de montaje adicionales en la raíz y para el usuario de la aplicación que incluyan secretos de usuario y el certificado HTTPS.

Nota:

Visual Studio 17.10 Si utiliza Docker Engine en Windows Subsystem for Linux (WSL) sin Docker Desktop, configure la variable de entorno VSCT_WslDaemon=1 para que Visual Studio utilice rutas WSL al crear montajes de volumen. El paquete NuGet Microsoft.VisualStudio.Azure.Containers.Tools.Targets 1.20.0-Preview 1 también es necesario.

En el caso de las aplicaciones web principales ASP.NET, puede haber dos carpetas adicionales para el certificado SSL y los secretos de usuario, que se explica con más detalle en Uso de SSL para aplicaciones principales ASP.NET contenedorizadas

Montaje de un volumen de contenedor

Puede montar otro volumen mediante argumentos de línea de comandos docker run.

  1. Abra el archivo de proyecto para el proyecto contenedorizado.

  2. Para especificar un nuevo argumento de línea de comandos, agregue la propiedad de MSBuild DockerfileRunArguments y proporcione la sintaxis -v o --mount. Por ejemplo, la siguiente sintaxis crea un volumen myvolume 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 -v o --mount.