共用方式為


啟動 Compose 服務的子集

如果您有包含多個服務並使用 Docker Compose 的應用程式,您可以在 Docker Compose 啟動設定中建立或編輯現有的啟動設定檔,以設定哪些服務執行和偵錯。 啟動配置檔可讓您只動態執行對您目前案例很重要的服務。 您可以建立並選擇啟動設定檔,以自訂偵錯體驗,並設定特定的啟動動作,例如 Browser Launch URL。 您也可以選擇個別選擇每個服務,或選擇 Docker Compose 配置檔,這也會查看您的 Compose 檔案,以判斷要執行的服務群組。

如需 Docker Compose 配置文件的相關信息,請參閱 在 Compose 中使用配置

先決條件

管理啟動設定

請考慮下列 Docker Compose 專案,其中 docker-compose.yml 有五個服務和三個 Compose 配置檔(web、web1 和 web2)。

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 啟動設定]

    [偵錯管理撰寫設定] 功能表項的螢幕快照

    [偵錯管理撰寫設定] 功能表項的螢幕快照

  • 以滑鼠右鍵按兩下 Visual Studio docker-compose 項目,然後選取 [管理 Docker Compose 啟動設定]

    操作功能表項的螢幕快照

    操作功能表項的螢幕快照

  • 使用快速啟動 (Ctrl+Q),並搜尋 Docker Compose 來尋找相同的命令。

在下列範例中,已選取 [web1 Compose 配置檔],這會將 Services 清單縮減為該配置檔中包含的五項服務中的三項:

[啟動設定對話框的螢幕快照]

注意

只有在 docker-compose.yml 檔案中定義了配置設定檔時,才會顯示 Docker Compose 設定檔區段。

下一個範例示範如何在各個獨立的服務之間進行選擇,而非篩選到 Compose 配置文件中的服務。 在這裡,我們將示範,如果您建立一個名為 test2 的新啟動配置檔,該對話框的外觀將會是如何。這個配置檔只啟動五個服務中的兩個:webapplication1 以偵錯模式啟動, 而 webapplication2 則不以偵錯模式啟動。 此啟動配置檔也會在應用程式啟動時啟動瀏覽器,並將它開啟至 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(屬於 webweb1 Compose 設定檔)、external1external2。 根據預設,沒有原始程式碼的服務,例如 external1external2,其預設動作是啟動而不偵錯。 .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 - 包含 組成啟動配置檔的 Compose 設定檔名稱清單。
composeProfile - serviceActions 列出選定的 Compose 配置檔、服務,以及每個服務的啟動操作
serviceActions 列出選取的服務和啟動動作。
composeLaunchAction 指定要在 F5 Ctrl+F5上執行的啟動動作。 允許的值為 None、LaunchBrowser 和 LaunchWCFTestClient。
composeLaunchUrl 啟動瀏覽器時要使用的URL。 有效的取代令牌為 “{ServiceIPAddress}”、“{ServicePort}” 和 “{Scheme}”。 例如:{Scheme}://{ServiceIPAddress}:{ServicePort}
composeLaunchServiceName 指定用於替換 composeLaunchUrl 中標記的服務。