Compartir vía


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

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.

  1. Abra el archivo de proyecto para el proyecto en contenedor.

  2. Para especificar un nuevo argumento de línea de comandos, agregue la propiedad MSBuild DockerfileRunArgumentsy 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 de -v o --mount.