Cvičení – vytvoření souboru Docker Compose pro orchestraci
Společnost Contoso outdoor equipment má dvě služby, které by chtěly seskupit, aby se sestavily a nasadily jako jednu jednotku. Společnost se rozhodne používat Docker Compose k sestavení služeb společně.
V tomto cvičení vytvoříte soubor DOcker Compose YAML. Pak pomocí nástroje Docker Compose sestavíte image kontejneru Dockeru a spustíte je.
Připojení k codespace
Pokud jste se odpojili od codespace, který jste použili v předchozím cvičení, znovu se připojte:
- Otevřete prohlížeč a přejděte do úložiště eShopLite.
- Vyberte Kód a pak vyberte kartu Codespaces .
- Vyberte prostor kódu, který jste vytvořili v předchozím cvičení. GitHub otevře prostor kódu.
- Přejděte do adresáře /dotnet-docker .
Vytvoření souboru Docker Compose
Pomocí souboru docker-compose nakonfigurujte image pro back-endové i front-endové služby:
Ve složce dotnet-docker v codespace otevřete soubor s názvem ./dotnet-docker/docker-compose.yml. Tento soubor je prázdný.
Do souboru docker-compose.yml přidejte následující kód:
version: '3.4' services: frontend: image: store:latest environment: - ProductEndpoint=http://backend:8080 ports: - "32000:8080" depends_on: - backend backend: image: products:latest ports: - "32001:8080"
Tento kód dělá několik věcí:
- Vytvoří front-endový web a pojmenuje ho front-end.
- Kód nastaví proměnnou prostředí pro web:
ProductEndpoint=http://backend:8080
. Tento kód určuje, jak front-endová služba najde back-endovou službu Products. - Kód otevře port a deklaruje, že závisí na back-endové službě.
- Dále se vytvoří back-endová služba s názvem back-end .
- Poslední příkaz určuje, který port se má otevřít.
Ve srovnání s docker-compose.yml soubor, který byste museli použít, pokud byste měli soubory Dockerfile:
version: '3.4' services: frontend: image: storeimage build: context: . dockerfile: ./Store/Dockerfile environment: - ProductEndpoint=http://backend:8080 ports: - "32000:8080" depends_on: - backend backend: image: productservice build: context: . dockerfile: ./Products/Dockerfile ports: - "32001:8080"
Kód je téměř stejný. Jediným rozdílem je potřeba mít fáze sestavení, které odkazují na každý soubor Dockerfile.
Sestavení imagí a spuštění kontejnerů
Teď pomocí Docker Compose sestavte a spusťte front-endové i back-endové komponenty.
Pokud chcete sestavit image kontejneru s podporou kontejneru .NET, vyberte kartu Terminál a spusťte následující příkaz. Upozorňujeme, že pokud je vaše aplikace stále spuštěná, nejprve zavřete kombinaci kláves CTRL+C.
dotnet publish /p:PublishProfile=DefaultContainer
Pokud chcete spustit front-endový web i back-endové webové rozhraní API, spusťte tento příkaz:
docker compose up
Zobrazí se nějaký výstup a web a webové rozhraní API jsou spuštěné. Měl by se zobrazit výstup podobný tomuto příkladu:
[+] Running 2/0 ✔ Container finished-files-backend-1 Created 0.0s ✔ Container finished-files-frontend-1 Created 0.0s Attaching to backend-1, frontend-1 ... backend-1 | info: Microsoft.Hosting.Lifetime[0] backend-1 | Hosting environment: Production backend-1 | info: Microsoft.Hosting.Lifetime[0] backend-1 | Content root path: /app
Pokud chcete otestovat front-endovou službu, vyberte kartu Porty . Napravo od místní adresy pro port front-endu vyberte ikonu zeměkoule. V prohlížeči se zobrazí domovská stránka.
Vyberte Produkty. Katalog zobrazuje zboží společnosti Contoso.