Uruchamianie podzbioru usług Compose
Jeśli masz aplikację składającą się z wielu usług i używasz narzędzia Docker Compose, możesz skonfigurować, które usługi są uruchamiane i debugowane, tworząc lub edytując istniejący profil uruchamiania w ustawieniach uruchamiania narzędzia Docker Compose. Profile uruchamiania pozwalają dynamicznie uruchamiać tylko usługi, które mają znaczenie dla bieżącego scenariusza. Możesz utworzyć i wybrać z profilów uruchamiania, aby dostosować środowisko debugowania i ustawić określone akcje uruchamiania, takie jak Browser Launch URL
. Możesz również wybrać każdą usługę indywidualnie lub wybierając profil narzędzia Docker Compose, który również sprawdza plik Compose, aby określić grupę usług do uruchomienia.
Aby uzyskać informacje o profilach narzędzia Docker Compose, zobacz Jak używać profili z Compose.
Warunki wstępne
- Visual Studio 2019 wersja 16.10 lub nowszej
- Rozwiązanie platformy .NET z orkiestracją kontenerów za pomocą narzędzia Docker Compose
- Visual Studio 2022 lub Visual Studio 2019 w wersji 16.10 lub nowszej
- Rozwiązanie platformy .NET z orkiestracją kontenerów za pomocą narzędzia Docker Compose
Zarządzanie ustawieniami uruchamiania
Rozważmy następujący projekt narzędzia Docker Compose, w którym docker-compose.yml ma pięć usług i trzy profile Compose (web, web1 i 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
Istnieje kilka opcji otwierania okna dialogowego uruchamiania narzędzia Docker Compose:
W programie Visual Studio wybierz pozycję Debugowanie>Zarządzanie ustawieniami uruchamiania narzędzia Docker Compose:
menu Zarządzaj ustawieniami redagowania
Kliknij prawym przyciskiem myszy projekt
docker-compose
programu Visual Studio i wybierz pozycję Zarządzaj ustawieniami uruchamiania narzędzia Docker ComposeUżyj "Szybkiego uruchamiania" (Ctrl+Q) i wyszukaj Docker Compose, aby znaleźć to samo polecenie.
W poniższym przykładzie został wybrany profil web1
Compose, który filtruje listę Services do tylko trzech z pięciu zawartych w tym profilu.
Notatka
Sekcja Profile narzędzia Docker Compose jest wyświetlana tylko wtedy, gdy istnieją profile zdefiniowane w plikach docker-compose.yml.
W następnym przykładzie pokazano wybór między poszczególnymi usługami zamiast filtrowania do usług w profilu Compose. W tym miejscu pokazano, jak wyglądałoby okno dialogowe, jeśli utworzono nowy profil uruchamiania o nazwie test2
, który uruchamia tylko dwa z pięciu usług, webapplication1
z debugowaniem i webapplication2
bez debugowania. Ten profil uruchamiania uruchamia również przeglądarkę po uruchomieniu aplikacji, otwierając ją na stronę główną webapplication1
.
Te informacje są zapisywane w launchSettings.json, jak pokazano poniżej
{
"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}"
}
}
}
Tworzenie profilu uruchamiania korzystającego z profilu narzędzia Docker Compose
Możesz również dodatkowo dostosować zachowania uruchamiania, tworząc profile uruchamiania programu Visual Studio, które korzystają z profilów Compose.
Aby utworzyć inny profil korzystający z profilu Compose, wybierz pozycję Użyj profilów narzędzia Docker Compose i wybierz pozycję web1
. Teraz profil uruchamiania obejmuje trzy usługi: webapplication1
(które należą do profilów web
i web1
Compose), external1
i external2
. Domyślnie usługi bez kodu źródłowego, takie jak external1
i external2
mają domyślną akcję Uruchom bez debugowania. Aplikacje .NET z kodem źródłowym domyślnie Rozpocznij debugowanie.
Ważny
Jeśli usługa nie określi profilu Compose, zostanie niejawnie uwzględniona we wszystkich profilach Compose.
Te informacje są zapisywane, jak pokazano w poniższym kodzie. Konfiguracja usługi i jej akcji domyślnej nie są zapisywane, chyba że zmienisz akcję domyślną.
{
"profiles": {
"test1": {
"commandName": "DockerCompose",
"composeProfile": {
"includes": [
"web1"
]
},
"commandVersion": "1.0"
}
}
}
Możesz również zmienić akcję webapplication1 na Start bez debugowania. Ustawienia w launchSettings.json następnie wyglądają podobnie do następującego kodu:
{
"profiles": {
"test1": {
"commandName": "DockerCompose",
"composeProfile": {
"includes": [
"web1"
],
"serviceActions": {
"webapplication1": "StartWithoutDebugging"
}
},
"commandVersion": "1.0"
}
}
}
Właściwości
Oto opis każdej właściwości w launchSettings.json:
Własność | Opis |
---|---|
commandName | Nazwa polecenia. Wartość domyślna to "DockerCompose" |
commandVersion | Numer wersji używany do zarządzania schematem profilu uruchamiania platformy DockerCompose. |
złóżProfil | Właściwość nadrzędna, która definiuje definicję profilu uruchamiania. Jego właściwości podrzędne są includes i serviceActions |
composeProfile — dołącza | Lista nazw profilów Compose, które tworzą profil uruchamiania. |
composeProfile — serviceActions | Wyświetla listę wybranych profilów Compose, usług i czynności uruchamiania każdej usługi |
serviceActions | Wyświetla listę wybranych usług i akcję uruchamiania. |
composeLaunchAction | Określa akcję uruchomienia, którą należy wykonać po naciśnięciu F5 lub Ctrl+F5. Dozwolone wartości to None, LaunchBrowser i LaunchWCFTestClient. |
composeLaunchUrl | Adres URL do użycia podczas uruchamiania przeglądarki. Prawidłowe tokeny zastępcze to "{ServiceIPAddress}", "{ServicePort}" i "{Scheme}". Na przykład: {Scheme}://{ServiceIPAddress}:{ServicePort} |
composeLaunchServiceName | Określa usługę używaną do zastępowania tokenów w pliku composeLaunchUrl. |