啟動 Compose 服務的子集
如果您有包含多個服務並使用 Docker Compose 的應用程式,您可以在 Docker Compose 啟動設定中建立或編輯現有的啟動設定檔,以設定哪些服務執行和偵錯。 啟動配置檔可讓您只動態執行對您目前案例很重要的服務。 您可以建立並選擇啟動設定檔,以自訂偵錯體驗,並設定特定的啟動動作,例如 Browser Launch URL
。 您也可以選擇個別選擇每個服務,或選擇 Docker Compose 配置檔,這也會查看您的 Compose 檔案,以判斷要執行的服務群組。
如需 Docker Compose 設定檔的相關信息,請參閱 使用設定檔搭配 Compose。
先決條件
- Visual Studio 2019 16.10 版本 或更新版本
- 使用 Docker Compose 容器協調流程的 .NET 解決方案
- Visual Studio 2022 或 Visual Studio 2019 16.10 版或更新版本
- 使用 Docker Compose 容器協調流程的 .NET 解決方案
管理啟動設定
請考慮下列 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
(屬於 web
和 web1
Compose 設定檔)、external1
和 external2
。 根據預設,像 external1
和 external2
這樣沒有原始程式碼的服務,其預設行為是 啟動而不進行偵錯。 .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 | 定義啟動設定檔的父屬性。 其子屬性是 includes 和 serviceActions |
composeProfile - 包括 | 組成啟動配置檔的 Compose 設定檔名稱列表。 |
composeProfile - serviceActions | 列出所選的 Compose 配置檔、服務及每個服務的啟動行動 |
serviceActions | 列出選取的服務和啟動動作。 |
撰寫啟動動作 | 指定要在 F5 或 Ctrl+F5上執行的啟動動作。 允許的值為 None、LaunchBrowser 和 LaunchWCFTestClient。 |
composeLaunchUrl | 啟動瀏覽器時要使用的URL。 有效的取代令牌為 “{ServiceIPAddress}”、“{ServicePort}” 和 “{Scheme}”。 例如:{Scheme}://{ServiceIPAddress}:{ServicePort} |
組合啟動服務名稱 | 指定用於替換 composeLaunchUrl 中令牌的服務。 |