Параметры запуска средств контейнера
В папке свойств в проекте ASP.NET Core можно найти файл launchSettings.json
, содержащий параметры, управляющие запуском веб-приложения на компьютере разработки. Подробные сведения о том, как этот файл используется в разработке ASP.NET, см. в разделе Использование нескольких сред в ASP.NET Core.
Этот файл можно редактировать напрямую, но в интегрированной среде разработки Visual Studio можно также изменять свойства в этом файле с помощью пользовательского интерфейса. Выберите раскрывающийся список рядом с параметром запуска (например, Docker
или .NET SDK
), а затем выберите свойства отладки для проекта с одним контейнером.
Для Docker Compose выберите Manage Docker Compose Launch Settings, а затем Запустить подмножество служб создания.
В launchSettings.jsonпараметры в разделе Docker связаны с тем, как Visual Studio обрабатывает контейнерные приложения.
"Docker": {
"commandName": "Docker",
"launchBrowser": true,
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
"DockerfileRunArguments": "-l mylabel=value",
"environmentVariables": {
"ASPNETCORE_URLS": "https://+:443;http://+:80",
"ASPNETCORE_HTTPS_PORT": "44360"
},
"httpPort": 51803,
"useSSL": true,
"sslPort": 44360
}
Параметр commandName определяет, что этот раздел применяется к средствам контейнеров.
Большинство параметров в launchSettings.json
доступны и применимы, независимо от того, используете ли вы Dockerfile или используете встроенную поддержку сборки контейнеров .NET (доступно для .NET 7 и более поздних версий).
В следующей таблице показаны свойства, которые можно задать в этом разделе:
Имя параметра | Пример | Описание |
---|---|---|
commandLineArgs | "commandLineArgs": "--mysetting myvalue" |
Эти аргументы командной строки для запуска приложения используются при запуске проекта в контейнере. |
DockerfileRunArguments | "dockerfileRunArguments": "-l mylabel=value" |
Дополнительные аргументы для передачи в команду docker run . |
environmentVariables |
"environmentVariables":
{
"ASPNETCORE_URLS": "https://+:443;http://+:80"``, <br/> "ASPNETCORE_HTTPS_PORT": "44381"' } |
Эти значения переменной среды передаются процессу при запуске в контейнере. |
httpPort | "httpPort": 24051 |
Этот порт на узле сопоставляется с портом контейнера 80 при запуске контейнера. |
launchBrowser | "launchBrowser": true |
Указывает, следует ли запускать браузер после успешного запуска проекта. |
launchBrowserTimeout | "launchBrowserTimeout": 1 |
Максимальное количество времени (в секундах) для ожидания готовности приложения перед запуском браузера. |
launchUrl | "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" |
Этот URL-адрес используется при запуске браузера. Поддерживаемые маркеры замены для этой строки: - {Scheme} — заменено http или https в зависимости от того, используется ли SSL. - {ServiceHost} — обычно заменяется localhost . При выборе контейнеров Windows в Windows 10 RS3 или более ранних версий он заменен IP-адресом контейнера. - {ServicePort} — обычно заменяется sslPort или httpPort в зависимости от того, используется ли SSL. Если вы используете контейнеры Windows в Windows 10 RS3 или более ранних версий, оно заменено на 443 или 80 в зависимости от того, используется ли SSL. |
sslPort | "sslPort": 44381 |
Этот порт на узле сопоставляется с портом контейнера 443 при запуске контейнера. |
useSSL | "useSSL": true |
Указывает, следует ли использовать SSL при запуске проекта. Если useSSL не указан, ssl используется при sslPort > 0 . |
Заметка
Если те же параметры, например, DockerfileRunArguments
, находятся как в файле проекта, так и в файле параметров запуска, значение в файле параметров запуска имеет приоритет.
Свойство в пользовательском интерфейсе профиля отладки | Настройка имени в launchSettings.json | Пример | Описание |
---|---|---|---|
Аргументы командной строки | commandLineArgs | "commandLineArgs": "--mysetting myvalue" |
Эти аргументы командной строки для запуска приложения используются при запуске проекта в контейнере. |
Аргументы запуска контейнера | containerRunArguments ContainerRunArguments |
"containerRunArguments": "-l mylabel=value" |
Дополнительные аргументы для передачи в команду docker run . (Используйте строчную версию в Visual Studio 17.12 и более поздней версии. Версия верхнего регистра появилась в Visual Studio 17.9 и предоставляется для обеспечения обратной совместимости.) Можно использовать следующие маркеры замены: - {ProjectDir} — полный путь к каталогу проекта. - {OutDir} — значение свойства MSBuild OutDir. |
N/A | DockerfileRunArguments | dockerfileRunArguments": "-l mylabel=value" |
Как и containerRunArguments , но только для проектов, использующих тип сборки Dockerfile. Для Visual Studio 17.12 и более поздних версий рекомендуется использовать вместо этого containerRunArguments . |
Переменные среды | environmentVariables |
"environmentVariables": {"ASPNETCORE_URLS": "https://+:443;http://+:80" , "ASPNETCORE_HTTPS_PORT": "44381" } |
Эти значения переменной среды передаются процессу при запуске в контейнере. |
Имя контейнера | containerName | mycontainer |
(17.12 и более поздних версий) Имя контейнера, соответствующего регулярному выражению [a-zA-Z0-9][a-zA-Z0-9_.-] . |
Файлы среды контейнера | containerRunEnvironmentFiles | "containerRunEnvironmentFiles": "abc.env;xyz.env" |
(17.12 и более поздних версий) Список файлов переменных среды (.env файлов), разделенных точкой с запятой. См. синтаксис файла.env. |
HTTP-порт | httpPort | "httpPort": 24051 |
Этот порт на узле сопоставляется с портом контейнера 80 при запуске контейнера. |
Запуск браузера | launchBrowser | "launchBrowser": true |
Указывает, следует ли запускать браузер после успешного запуска проекта. |
N/A | launchBrowserTimeout | "launchBrowserTimeout": 1 |
Максимальное время (в секундах) для ожидания готовности приложения перед запуском браузера (только Docker Compose). |
URL-адрес | launchUrl | "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" |
Этот URL-адрес используется при запуске браузера. Поддерживаемые маркеры замены для этой строки: - {Scheme} — заменено http или https в зависимости от того, используется ли SSL. - {ServiceHost} — обычно заменяется localhost . При выборе контейнеров Windows в Windows 10 RS3 или более ранних версий он заменен IP-адресом контейнера. - {ServicePort} — обычно заменяется sslPort или httpPort в зависимости от того, используется ли SSL. Если вы используете контейнеры Windows в Windows 10 RS3 или более ранних версий, оно заменено на 443 или 80 в зависимости от того, используется ли SSL. |
Публикация всех портов | publishAllPorts | "publishAllPorts": true |
Если значение true, передайте -P в docker run , которая публикует все открытые порты в случайный порт. См. документации по Docker. Однако при указании sslPort Visual Studio по-прежнему передает -p 5002:443 , поэтому служба должна прослушивать порт 5002. |
ПОРТ SSL | sslPort | "sslPort": 44381 |
Этот порт на узле сопоставляется с портом контейнера 443 при запуске контейнера. |
N/A | useSSL | "useSSL": true |
Указывает, следует ли использовать SSL при запуске проекта. Если useSSL не указан, ssl используется при sslPort > 0 . |
Не все параметры доступны в пользовательском интерфейсе, например useSSL
. Чтобы изменить эти параметры, измените launchSettings.json
напрямую.
Параметр DockerfileRunArguments
заменен в Visual Studio 2022 17.12 и более поздних версий containerRunArguments
, который можно задать в пользовательском интерфейсе профилей запуска как Container run arguments
.
Заметка
Если один и тот же параметр найден как в файле проекта, так и в файле параметров запуска, значение в файле параметров запуска имеет приоритет.
Дальнейшие действия
Настройте проект, задав свойства сборки средств контейнеров.