次の方法で共有


Compose サービスのサブセットを起動する

複数のサービスで構成され、Docker Compose を使用するアプリケーションがある場合は、Docker Compose 起動設定で既存の起動プロファイルを作成または編集することで、実行およびデバッグするサービスを構成できます。 起動プロファイルを使用すると、現在のシナリオに関係するサービスのみを動的に実行できます。 デバッグ エクスペリエンスをカスタマイズし、Browser Launch URLなどの特定の起動アクションを設定するために、起動プロファイルを作成して選択できます。 また、各サービスを個別に選択するか、Docker Compose プロファイルを選択することもできます。Docker Compose プロファイルは、実行するサービスのグループを決定するために Compose ファイルも確認します。

Docker Compose プロファイルの詳細については、「Composeでのプロファイルの使用」を参照してください。

前提 条件

起動設定の管理

docker-compose.yml に 5 つのサービスと 3 つの Compose プロファイル (Web、web1、Web2) がある次の Docker Compose プロジェクトについて考えてみましょう。

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 起動設定の管理]選択します。

    デバッグ管理作成設定のメニュー項目のスクリーンショット

    デバッグから Compose 設定の管理のメニュー項目のスクリーンショット

  • Visual Studio の docker-compose プロジェクトを右クリックし、[Docker Compose 起動設定の管理] を選択します

    コンテキスト メニュー項目の のスクリーンショット

    コンテキスト メニュー項目の のスクリーンショット

  • クイック起動 (Ctrl+Q) を使用して、Docker Compose を探し、同じコマンドを見つけます。

次の例では、web1 Compose プロファイルが選択されています。これにより、[サービス] 一覧がこのプロファイルに含まれる 5 つのうち 3 つにフィルター処理されます。

[起動設定] ダイアログ ボックスのスクリーンショット]

手記

Docker Compose プロファイル セクションは、docker-compose.yml ファイルに定義されているプロファイルがある場合にのみ表示されます。

次の例では、Compose プロファイル内のサービスにフィルター処理するのではなく、個々のサービスを選択する方法を示します。 ここでは、5つのサービスのうち2つ、デバッグありの webapplication1 とデバッグなしの webapplication2 のみを開始する、新たに作成した起動プロファイル test2 におけるダイアログの見え方を示します。 この起動プロファイルは、アプリケーションの起動時にブラウザーを起動し、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 プロファイルを使用する起動プロファイルを作成する

Compose プロファイルを使用する Visual Studio 起動プロファイルを作成することで、起動動作をさらにカスタマイズすることもできます。

Compose プロファイルを使用する別のプロファイルを作成するには、Docker Compose プロファイル 使用を選択し、web1を選択します。 起動プロファイルには、webapplication1 (web プロファイルと web1 Compose プロファイルの両方に属する)、external1、および external2の 3 つのサービスが含まれます。 既定では、external1external2 などのソース コードのないサービスでは、をデバッグせずに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の各プロパティの説明を次に示します。

財産 説明
コマンド名 コマンドの名前。 既定値は "DockerCompose" です
commandVersion DockerCompose 起動プロファイルのスキーマを管理するために使用されるバージョン番号。
プロフィール作成 起動プロファイル定義を定義する親プロパティ。 その子プロパティは includesserviceActions です
composeProfile - includes 起動プロファイルを構成する Compose プロファイル名の一覧。
composeProfile - serviceActions 選択した Compose プロファイル、サービス、および各サービスの起動アクションを一覧表示します
serviceActions 選択したサービスと起動アクションを一覧表示します。
起動アクションを作成 F5 または Ctrl+F5で実行する起動アクションを指定します。 使用できる値は None、LaunchBrowser、LaunchWCFTestClient です。
起動URLを作成 ブラウザーの起動時に使用する URL。 有効な置換トークンは、"{ServiceIPAddress}"、"{ServicePort}"、および "{Scheme}" です。 例: {Scheme}://{ServiceIPAddress}:{ServicePort}
composeLaunchServiceName composeLaunchUrl 内のトークンを置き換える際に使用するサービスを指定します。