Настройка сопоставления томов контейнера
Чтобы реализовать отладку в контейнерах, Visual Studio использует сопоставление томов для сопоставления отладчика и папок NuGet с хост-компьютера. Сопоставление томов описано в документации по Docker. Сопоставления томов для контейнера можно просмотреть с помощью окна "Контейнеры" в Visual Studio.
Необходимые компоненты
- Docker Desktop
- Visual Studio 2019 или более поздней версии с установленной рабочей нагрузкой веб-разработки, средствами Azure и (или) рабочей нагрузкой разработки классических приложений .NET
Подключения томов в образах контейнеров Visual Studio
Ниже перечислены тома, которые подключаются в контейнере:
Громкость | Description |
---|---|
Папка приложения | Содержит папку проекта, в которой располагается файл Dockerfile. |
Папки пакетов NuGet | Содержит пакеты NuGet и резервные папки, которые считываются из файла obj{project}.csproj.nuget.g.props в проекте. |
Удаленный отладчик | Содержит компоненты, необходимые для запуска отладчика в контейнере, в соответствии с типом проекта. Сведения о настройке образов контейнеров для отладки. |
Исходная папка | Содержит контекст сборки, который передается в команды Docker. |
Ниже приведены тома, подключенные в контейнере. Отображаемые в контейнерах значения могут отличаться в зависимости от используемой дополнительной версии Visual Studio 2022.
Громкость | Description |
---|---|
Папка приложения | Содержит папку проекта, в которой располагается файл Dockerfile. |
Папки пакетов NuGet | Содержит пакеты NuGet и резервные папки, которые считываются из файла obj{project}.csproj.nuget.g.props в проекте. |
Удаленный отладчик | Содержит компоненты, необходимые для запуска отладчика в контейнере, в соответствии с типом проекта. Дополнительные сведения см. в разделе "Настройка образов контейнеров для отладки". |
Исходная папка | Содержит контекст сборки, который передается в команды Docker. |
VSTools | Содержит средства Visual Studio, поддерживающие работу с контейнером, включая поддержку отладчика, окна контейнеров, обработки маркеров Azure, агента Горячая перезагрузка и вспомогательного средства дистрибутива. |
Для .NET 8 дополнительные точки подключения в корневом каталоге и для пользователя приложения, содержащего секреты пользователя и сертификат HTTPS, также могут присутствовать.
Примечание.
Visual Studio 17.10 Если вы используете подсистему Docker в подсистема Windows для Linux (WSL) без Docker Desktop, задайте для переменной VSCT_WslDaemon=1
среды среду использовать пути WSL при создании подключений томов. Пакет NuGet Microsoft.VisualStudio.Azure.Containers.Tools.Targets 1.20.0-Preview 1 также требуется.
Для ASP.NET основных веб-приложений может быть две дополнительные папки для SSL-сертификата и секретов пользователей, которые подробно описаны в статье "Использование SSL для контейнерных приложений ASP.NET Core"
Подключение тома контейнера
Вы можете подключить другой том с помощью docker run
аргументов командной строки.
Откройте файл проекта для контейнеризованного проекта.
Чтобы указать новый аргумент командной строки, добавьте свойство
DockerfileRunArguments
MSBuild и укажите-v
или--mount
синтаксис. Например, следующий синтаксис создает томmyvolume
и подключает его в контейнере в папке/scratch
.<PropertyGroup> <DockerfileRunArguments>-v myvolume:/scratch</DockerfileRunArguments> </PropertyGroup>
Ознакомьтесь с документацией По Docker для синтаксиса командной строки для параметров -v или --mount .