容器工具启动设置

在 ASP.NET Core 项目中的“属性”文件夹中,可以找到launchSettings.json该文件,其中包含用于控制 Web 应用在开发计算机上启动方式的设置。 有关如何在 ASP.NET 开发中使用此文件的详细信息,请参阅在 ASP.NET Core 中使用多个环境

可以直接编辑此文件,但在 Visual Studio IDE 中,还可以通过 UI 编辑此文件中的属性。 选择启动选项旁边的下拉列表(例如,Docker或),然后选择单容器项目的调试属性.NET SDK

启动配置文件对话框的屏幕截图,其中显示了容器启动配置文件的启动设置。

对于 Docker Compose,请选择“ 管理 Docker Compose 启动设置”,并查看 “启动撰写服务”子集。

在“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 设置确定此部分是否适用于容器工具。

无论使用的是 Dockerfile,还是使用 .NET SDK 的内置容器生成支持(适用于 .NET 7 及更高版本),大多数设置 launchSettings.json 都可用且适用。

下表显示了可在此部分中设置的属性:

设置名 示例 描述
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}- 替换为任一或httphttps取决于是否使用 SSL。

- {ServiceHost} - 通常替换为 localhost
但是,面向使用 Windows 10 RS3 或更低版本的 Windows 容器时,它将替换为容器的 IP。

- {ServicePort} - 通常替换为 sslPorthttpPort,具体取决于是否使用 SSL。
但是,在面向使用 Windows 10 RS3 或更低版本的 Windows 容器时,它将替换为 44380,具体取决于是否使用 SSL。
sslPort "sslPort": 44381 启动容器时,主机上的此端口映射到容器的端口 443。
useSSL "useSSL": true 指示在启动项目时是否使用 SSL。 如果未指定 useSSL,则会在 sslPort > 0 时使用 SSL。

注意

如果在项目文件和启动设置文件中都找到相同的设置(例如 DockerfileRunArguments),则启动设置文件中的值优先。

调试配置文件 UI 中的属性 在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 的值。
空值 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 指示在成功启动项目后是否启动浏览器。
空值 launchBrowserTimeout "launchBrowserTimeout": 1 在启动浏览器(仅 Docker Compose)之前等待应用准备就绪的最长时间(以秒为单位)。
URL launchUrl "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" 启动浏览器时使用该 URL。 此字符串支持的替换令牌为:

- {Scheme} - 根据是否使用 SSL,替换为任一 httphttps两者。

- {ServiceHost} - 通常替换为 localhost
但是,面向使用 Windows 10 RS3 或更低版本的 Windows 容器时,它将替换为容器的 IP。

- {ServicePort} - 通常替换为 sslPort 或 httpPort,具体取决于是否使用 SSL。
但是,在面向使用 Windows 10 RS3 或更低版本的 Windows 容器时,它将替换为 44380,具体取决于是否使用 SSL。
发布所有端口 publishAllPorts "publishAllPorts": true 如果此项为 true,则将 -P 传递给 docker run,这会将所有公开的端口都发布到一个随机端口。 请参阅 Docker 文档。 但是,指定 sslPort 时,Visual Studio 仍会传递 -p 5002:443,因此服务仍应侦听端口 5002。
Ssl 端口 sslPort "sslPort": 44381 启动容器时,主机上的此端口映射到容器的端口 443。
空值 useSSL "useSSL": true 指示在启动项目时是否使用 SSL。 如果未指定 useSSL,则会在 sslPort > 0 时使用 SSL。

并非所有设置都在 UI 中可用,例如 useSSL。 若要更改这些设置,请直接编辑 launchSettings.json

该设置 DockerfileRunArguments 在 Visual Studio 2022 17.12 及更高版本中 containerRunArguments被取代,可在“启动配置文件”UI 中将其设置为 Container run arguments

注意

如果在项目文件和启动设置文件中找到相同的设置,则启动设置文件中的值优先。

后续步骤

通过设置容器工具生成属性来配置项目。

请参阅