ASP.NET Core プロジェクトの Properties フォルダーには、開発用コンピューターでの Web アプリの起動方法を制御する設定を含む launchSettings.json ファイルがあります。 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
}
"Docker (Dockerfile)": {
"commandName": "Docker",
"launchBrowser": true,
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
"environmentVariables": {
"ASPNETCORE_HTTPS_PORTS": "8081",
"ASPNETCORE_HTTP_PORTS": "8080"
},
"publishAllPorts": true,
"useSSL": true
}
"Container (Dockerfile)"を使用することもできます。これは、Podman を使用する場合はより正確ですが、"Docker (Dockerfile)"は Docker コンテナー ランタイムと Podman コンテナー ランタイムの両方で機能します。
commandName 設定は、このセクションがコンテナー ツールに適用されることを識別します。
launchSettings.json のほとんどの設定は、Dockerfile を使用しているか、.NET SDK の組み込みコンテナー ビルド サポート (.NET 7 以降で利用可能) を使用しているかに関係なく使用できます。
次の表に、このセクションで設定できるプロパティを示します。
| 設定名 | 例 | 形容 |
|---|---|---|
| commandLineArgs | "commandLineArgs": "--mysetting myvalue" |
アプリを起動するためのこれらのコマンド ライン引数は、コンテナーでプロジェクトを起動するときに使用されます。 |
| DockerfileRunArguments | "dockerfileRunArguments": "-l mylabel=value" |
docker run コマンドに渡す追加の引数。 |
| 環境変数 |
"environmentVariables":
{
"ASPNETCORE_URLS": "https://+:443;http://+:80"``, <br/> "ASPNETCORE_HTTPS_PORT": "44381"''} |
これらの環境変数の値は、コンテナーで起動されたときにプロセスに渡されます。 |
| httpポート(httpPort) | "httpPort": 24051 |
ホスト上のこのポートは、コンテナーの起動時にコンテナーのポート 80 にマップされます。 |
| ブラウザーを起動 | "launchBrowser": true |
プロジェクトを正常に起動した後にブラウザーを起動するかどうかを示します。 |
| launchBrowserTimeout | "launchBrowserTimeout": 1 |
ブラウザーを起動する前にアプリの準備が整うのを待機する最大時間 (秒単位)。 |
| launchUrl | "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" |
この URL は、ブラウザーを起動するときに使用されます。 この文字列でサポートされている置換トークンは次のとおりです。 - {Scheme} - SSL が使用されているかどうかに応じて、http または https に置き換えられます。 - {ServiceHost} - 通常、localhostに置き換えられます。 ただし、Windows 10 RS3 以前の Windows コンテナーを対象としている場合は、コンテナーの IP に置き換えられます。 - {ServicePort} - 通常、SSL が使用されているかどうかに応じて、sslPort または httpPortに置き換えられます。 ただし、Windows 10 RS3 以前の Windows コンテナーを対象としている場合は、SSL が使用されているかどうかに応じて、 443 または 80に置き換えられます。 |
| 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": {"ASPNETCORE_URLS": "https://+:443;http://+:80","ASPNETCORE_HTTPS_PORT": "44381" } |
これらの環境変数の値は、コンテナーで起動されたときにプロセスに渡されます。 |
| コンテナー名 | コンテナ名 | mycontainer |
(17.12 以降)正規表現 [a-zA-Z0-9][a-zA-Z0-9_.-]に一致するコンテナーの名前。 |
| コンテナー環境ファイル | containerRunEnvironmentFiles | "containerRunEnvironmentFiles": "abc.env;xyz.env" |
(17.12 以降)セミコロンで区切られた環境変数ファイル (.env ファイル) の一覧。 .env ファイル 構文を参照してください。 |
| HTTP ポート | httpポート(httpPort) | "httpPort": 24051 |
ホスト上のこのポートは、コンテナーの起動時にコンテナーのポート 80 にマップされます。 |
| ブラウザーの起動 | ブラウザーを起動 | "launchBrowser": true |
プロジェクトを正常に起動した後にブラウザーを起動するかどうかを示します。 |
| なし | launchBrowserTimeout | "launchBrowserTimeout": 1 |
ブラウザーを起動する前にアプリの準備が整うのを待機する最大時間 (秒単位)。 |
| URL | launchUrl | "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" |
この URL は、ブラウザーを起動するときに使用されます。 この文字列でサポートされている置換トークンは次のとおりです。 - {Scheme} - SSL が使用されているかどうかに応じて、http または httpsに置き換えられます。 - {ServiceHost} - 通常、localhostに置き換えられます。 ただし、Windows 10 RS3 以前の Windows コンテナーを対象としている場合は、コンテナーの IP に置き換えられます。 - {ServicePort} - 通常、SSL が使用されているかどうかに応じて、sslPort または httpPort に置き換えられます。 ただし、Windows 10 RS3 以前の Windows コンテナーを対象としている場合は、SSL が使用されているかどうかに応じて、 443 または 80に置き換えられます。 |
| すべてのポートを発行する | 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設定は、containerRunArgumentsによって Visual Studio 2022 17.12 以降で置き換えられます。これは、起動プロファイル UI でContainer run argumentsとして設定できます。
手記
プロジェクト ファイルと起動設定ファイルの両方で同じ設定が見つかった場合は、起動設定ファイルの値が優先されます。
| デバッグ プロファイル UI のプロパティ | launchSettings.json の設定名 | 例 | 形容 |
|---|---|---|---|
| コマンド ライン引数 | commandLineArgs | "commandLineArgs": "--mysetting myvalue" |
アプリを起動するためのこれらのコマンド ライン引数は、コンテナーでプロジェクトを起動するときに使用されます。 |
| コンテナーの実行引数 | containerRunArguments ContainerRunArguments |
"containerRunArguments": "-l mylabel=value" |
docker runまたは podman run コマンドに渡す追加の引数。 (Visual Studio 17.12 以降では小文字のバージョンを使用します。大文字のバージョンは Visual Studio 17.9 で導入され、下位互換性のために提供されています)。 次の置換トークンを使用できます。 - {ProjectDir} - プロジェクト ディレクトリへの完全パス。 - {OutDir} - MSBuild プロパティ OutDir の値。 |
| なし | DockerfileRunArguments | "dockerfileRunArguments": "-l mylabel=value" |
containerRunArgumentsと同様ですが、Dockerfile ビルドの種類を使用するプロジェクトに対してのみです。 代わりに containerRunArguments を使用することをお勧めします。 |
| 環境変数 | 環境変数 |
"environmentVariables": {"ASPNETCORE_URLS": "https://+:443;http://+:80","ASPNETCORE_HTTPS_PORT": "44381" } |
これらの環境変数の値は、コンテナーで起動されたときにプロセスに渡されます。 |
| 実行可能ファイルのパス | executablePath |
"executablePath": "myprogram.exe" |
デバッグ時に、この実行可能ファイルを起動するようにデバッガーに指示されます。 |
| コンテナー名 | コンテナ名 | mycontainer |
(17.12 以降)正規表現 [a-zA-Z0-9][a-zA-Z0-9_.-]に一致するコンテナーの名前。 |
| コンテナー環境ファイル | containerRunEnvironmentFiles | "containerRunEnvironmentFiles": "abc.env;xyz.env" |
(17.12 以降)セミコロンで区切られた環境変数ファイル (.env ファイル) の一覧。 .env ファイル 構文を参照してください。 |
| HTTP ポート | httpポート(httpPort) | "httpPort": 24051 |
ホスト上のこのポートは、コンテナーの起動時にコンテナーの HTTP ポートにマップされます。 環境変数 ASPNETCORE_URLS および ASPNETCORE_HTTP_PORTSを使用してポートを指定しない限り、コンテナー ポート 80 が使用されます。 |
| ブラウザーの起動 | ブラウザーを起動 | "launchBrowser": true |
プロジェクトを正常に起動した後にブラウザーを起動するかどうかを示します。 |
| なし | launchBrowserTimeout | "launchBrowserTimeout": 1 |
ブラウザーを起動する前にアプリの準備が整うのを待機する最大時間 (秒単位)。 |
| URL | launchUrl | "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" |
この URL は、ブラウザーを起動するときに使用されます。 この文字列でサポートされている置換トークンは次のとおりです。 - {Scheme} - SSL が使用されているかどうかに応じて、http または httpsに置き換えられます。 - {ServiceHost} - 通常、localhostに置き換えられます。 ただし、Windows 10 RS3 以前の Windows コンテナーを対象としている場合は、コンテナーの IP に置き換えられます。 - {ServicePort} - 通常、SSL が使用されているかどうかに応じて、sslPort または httpPort に置き換えられます。 ただし、Windows 10 RS3 以前の Windows コンテナーを対象としている場合は、環境変数 ASPNETCORE_URLS および ASPNETCORE_HTTP_PORTSで指定された HTTP または HTTPS ポートに置き換えられます。設定されていない場合は HTTP の場合は 80、HTTPS の場合は 443 に置き換えられます。 |
| すべてのポートを発行する | publishAllPorts | "publishAllPorts": true |
true の場合は、-P を docker runに渡します。これによって、公開されているすべてのポートがランダム なポートに発行されます。 Docker のドキュメント を参照してください。 ただし、sslPortを指定しても、Visual Studio は引き続き -p 5002:443渡されるため、サービスは引き続きポート 5002 でリッスンしている必要があります。 |
| SSL ポート | sslPort | "sslPort": 44381 |
ホスト上のこのポートは、コンテナーの起動時にコンテナーの HTTPS ポートにマップされます。 環境変数 ASPNETCORE_URLS と ASPNETCORE_HTTP_PORTSを使用してポートを指定しない限り、コンテナー ポート 443 が使用されます。 |
| なし | useSSL | "useSSL": true |
プロジェクトの起動時に SSL を使用するかどうかを示します。
useSSL が指定されていない場合は、sslPort > 0するときに SSL が使用されます。 |
| 作業ディレクトリ | 作業ディレクトリ (workingDirectory) | "workingDirectory": "c:\path\to\folder" |
デバッグ時に、このパスを作業ディレクトリとして使用するようにデバッガーに指示されます。 |
UI ですべての設定を使用できるわけではありません (例: useSSL)。 これらの設定を変更するには、launchSettings.json を直接編集します。
containerRunArgumentsは、起動プロファイル UI でContainer run argumentsとして設定できます。 これは、古い MSBuild プロパティの DockerfileRunArgumentsと同じです。
手記
プロジェクト ファイルと起動設定ファイルの両方で同じ設定が見つかった場合は、起動設定ファイルの値が優先されます。
次の手順
Container Tools ビルド プロパティ設定して、プロジェクトを構成します。
関連項目
- Docker Compose ビルド プロパティ を する
- Docker Compose の起動プロファイルを管理する