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. Uruchamianie profilów umożliwia dynamiczne uruchamianie tylko usług, 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ć pojedynczo każdą usługę lub wybrać profil narzędzia Docker Compose, który również przyjrzy się plikowi Compose, aby określić grupę usług do uruchomienia.
Aby uzyskać informacje o profilach narzędzia Docker Compose, zobacz Using profiles with Compose (Używanie profilów za pomocą narzędzia Compose).
Wymagania wstępne
- Visual Studio 2019 w wersji 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 redagowania (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ę Debuguj>zarządzaj programem Docker Compose Launch Ustawienia:
Kliknij prawym przyciskiem myszy projekt programu Visual Studio
docker-compose
i wybierz polecenie Zarządzaj programem Docker Compose Launch UstawieniaUżyj szybkiego uruchamiania (Ctrl+Q) i wyszukaj ciąg Docker Compose , aby znaleźć to samo polecenie.
W poniższym web1
przykładzie wybrano profil Redagowanie, który filtruje listę Usługi tylko do trzech z pięciu uwzględnionych w tym profilu:
Uwaga
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 redagowania. 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 z webapplication1
debugowaniem i webapplication2
bez debugowania. Ten profil uruchamiania uruchamia również przeglądarkę po uruchomieniu aplikacji i otwarciu jej na stronę główną programu webapplication1
.
Te informacje zostaną zapisane podczas uruchamiania Ustawienia.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 redagowania.
Aby utworzyć inny profil korzystający z profilu redagowania, 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 i web
Redaguj) external1
i web1
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 będą domyślnie uruchamiać debugowanie.
Ważne
Jeśli usługa nie określi profilu redagowania, zostanie niejawnie uwzględniona we wszystkich profilach redagowania.
Te informacje zostaną zapisane, 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ę aplikacji internetowej1 na Uruchom bez debugowania. Ustawienia podczas uruchamiania Ustawienia.json następnie wyglądają jak następujący kod:
{
"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 uruchomieniu Ustawienia.json:
Właściwości | opis |
---|---|
Commandname | Nazwa polecenia. Wartość domyślna to "DockerCompose" |
commandVersion | Numer wersji używany do zarządzania schematem profilu uruchamiania platformy DockerCompose. |
composeProfile | Właściwość nadrzędna, która definiuje definicję profilu uruchamiania. Jej właściwości podrzędne to includes i serviceActions |
composeProfile — dołącza | Lista nazw profilów redagowania tworzących profil uruchamiania. |
composeProfile — serviceActions | Wyświetla listę wybranych profilów, usług i akcji uruchamiania każdej usługi |
serviceActions | Wyświetla listę wybranych usług i akcję uruchamiania. |
composeLaunchAction | Określa akcję uruchamiania do wykonania na klawiszu 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. |