Поделиться через


Параметры запуска средств контейнера

В папке свойств в проекте 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. Однако при указании sslPortVisual 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.

Заметка

Если один и тот же параметр найден как в файле проекта, так и в файле параметров запуска, значение в файле параметров запуска имеет приоритет.

Дальнейшие действия

Настройте проект, задав свойства сборки средств контейнеров.

См. также