Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Если у вас есть приложение, состоящее из нескольких служб и использующее Docker Compose, можно настроить запуск и отладку служб, создав или изменив существующий профиль запуска в параметрах запуска Docker Compose. Профили запуска позволяют динамически запускать только службы, которые имеют значение для текущего сценария. Вы можете создать и выбрать из профилей запуска, чтобы настроить интерфейс отладки и задать определенные действия запуска, такие как Browser Launch URL
. Вы также можете выбрать каждую службу по отдельности или выбрать профиль Docker Compose, который также смотрит на файл Compose, чтобы определить группу служб для запуска.
Дополнительные сведения о профилях Docker Compose см. в разделе Использование профилей с помощью Compose.
Необходимые условия
- Visual Studio 2019 версии 16.10 или более поздней версии
- Решение .NET с оркестрацией контейнеров с помощью Docker Compose
- Visual Studio 2022 или Visual Studio 2019 версии 16.10 или позже
- Решение .NET с оркестрацией контейнеров с помощью Docker Compose
Управление параметрами запуска
Рассмотрим следующий проект Docker Compose, в котором docker-compose.yml имеет пять служб и три профиля Compose (web, web1 и web2).
version: '3.9'
services:
webapplication1:
image: ${DOCKER_REGISTRY-}webapplication1
profiles: [web, web1]
build:
context: .
dockerfile: WebApplication1/Dockerfile
webapplication2:
image: ${DOCKER_REGISTRY-}webapplication2
profiles: [web, web2]
build:
context: .
dockerfile: WebApplication2/Dockerfile
webapplication3:
image: ${DOCKER_REGISTRY-}webapplication3
profiles: [web]
build:
context: .
dockerfile: WebApplication3/Dockerfile
external1:
image: redis
external2:
image: redis
Существует несколько вариантов открытия диалогового окна запуска Docker Compose:
В Visual Studio выберите Отладка>Управление параметрами запуска Docker Compose:
Щелкните правой кнопкой мыши на проекте
docker-compose
в Visual Studio и выберите Настройка параметров запуска Docker ComposeИспользуйте быстрый запуск (CTRL+Q) и выполните поиск Docker Compose, чтобы найти ту же команду.
В приведенном ниже примере выбран профиль Compose web1
, который фильтрует список служб до трех из пяти, включенных в этот профиль.
Заметка
Раздел Docker Compose с профилями отображается только тогда, когда в файлах docker-compose.yml заданы профили.
В следующем примере показано выбор между отдельными службами вместо фильтрации служб в профиле Compose. Здесь показано, как будет выглядеть диалоговое окно, если вы создали новый профиль запуска с именем test2
, который запускает только два из пяти служб, webapplication1
с отладкой и webapplication2
без отладки. Этот профиль запуска также запускает браузер при старте приложения и открывает его на домашней странице webapplication1
.
И эти сведения сохраняются в launchSettings.json, как показано ниже.
{
"profiles": {
"test2": {
"commandName": "DockerCompose",
"composeLaunchServiceName": "webapplication1",
"serviceActions": {
"external1": "DoNotStart",
"external2": "DoNotStart",
"webapplication1": "StartDebugging",
"webapplication2": "StartWithoutDebugging",
"webapplication3": "DoNotStart"
},
"composeLaunchAction": "LaunchBrowser",
"commandVersion": "1.0",
"composeLaunchUrl": "{Scheme}://localhost:{ServicePort}"
}
}
}
Создание профиля запуска, использующего профиль Docker Compose
Кроме того, можно дополнительно настроить поведение запуска, создав профили запуска в Visual Studio, которые используют Compose профили.
Чтобы создать другой профиль, который использует профиль Compose, выберите Использовать профили Docker Compose и выберите web1
. Теперь профиль запуска включает три службы: webapplication1
(которая принадлежит как к профилю web
, так и к профилю web1
Compose), external1
и external2
. По умолчанию службы без исходного кода, например external1
и external2
, имеют действие по умолчанию Start без отладки. Приложения .NET с исходным кодом по умолчанию переводятся в режим начать отладку.
Важный
Если служба не указывает профиль Compose, он включается во все профили Compose неявно.
Эти сведения сохраняются, как показано в следующем коде. Конфигурация службы и ее действия по умолчанию не сохраняются, если вы не измените действие по умолчанию.
{
"profiles": {
"test1": {
"commandName": "DockerCompose",
"composeProfile": {
"includes": [
"web1"
]
},
"commandVersion": "1.0"
}
}
}
Вы также можете изменить действие webapplication1 на Start без отладки. Затем параметры в launchSettings.json выглядят следующим образом:
{
"profiles": {
"test1": {
"commandName": "DockerCompose",
"composeProfile": {
"includes": [
"web1"
],
"serviceActions": {
"webapplication1": "StartWithoutDebugging"
}
},
"commandVersion": "1.0"
}
}
}
Свойства
Ниже приведено описание каждого свойства в launchSettings.json:
Свойство | Описание |
---|---|
commandName | Имя команды. По умолчанию устанавливается "DockerCompose" |
версия команды | Номер версии, используемый для управления схемой профиля запуска DockerCompose. |
составитьПрофиль | Родительское свойство, задающее параметры профиля запуска. Его дочерние свойства includes и serviceActions |
composeProfile — включает в себя | Список имен профилей Compose, составляющих профиль запуска. |
composeProfile – serviceActions | Списки выбранных профилей Compose, серверов и действия, выполняемые при запуске каждого сервера |
serviceActions | Перечисляет выбранные службы и действие запуска. |
СоставитьДействиеЗапуска | Указывает действие запуска для выполнения F5 или CTRL+F5. Допустимые значения: None, LaunchBrowser и LaunchWCFTestClient. |
composeLaunchUrl | URL-адрес, используемый при запуске браузера. Допустимые маркеры замены: "{ServiceIPAddress}", "{ServicePort}" и "{Scheme}". Например: {Scheme}://{ServiceIPAddress}:{ServicePort} |
СоставитьИмяСлужбыЗапуска | Указывает службу, используемую для замены маркеров в composeLaunchUrl. |