共用方式為


啟動 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」
指令版本 用來管理 DockerCompose 啟動設定檔架構的版本號碼。
composeProfile 定義啟動設定檔的父屬性。 其子屬性是 includesserviceActions
composeProfile - 包括 組成啟動配置檔的 Compose 設定檔名稱列表。
composeProfile - serviceActions 列出所選的 Compose 配置檔、服務及每個服務的啟動行動
serviceActions 列出選取的服務和啟動動作。
撰寫啟動動作 指定要在 F5 Ctrl+F5上執行的啟動動作。 允許的值為 None、LaunchBrowser 和 LaunchWCFTestClient。
composeLaunchUrl 啟動瀏覽器時要使用的URL。 有效的取代令牌為 “{ServiceIPAddress}”、“{ServicePort}” 和 “{Scheme}”。 例如:{Scheme}://{ServiceIPAddress}:{ServicePort}
組合啟動服務名稱 指定用於替換 composeLaunchUrl 中令牌的服務。