Cvičení – vytvoření souboru Docker Compose pro orchestraci

Dokončeno

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í do codespace

Pokud jste se odpojili od codespace, který jste použili v předchozím cvičení, znovu se připojte:

  1. Otevřete prohlížeč a přejděte do úložiště eShopLite.
  2. Vyberte Kód a pak vyberte kartu Codespaces .
  3. Vyberte prostor kódu, který jste vytvořili v předchozím cvičení. GitHub otevře prostor kódu.
  4. 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:

  1. Ve složce dotnet-docker v codespace (stejná složka s README.md) otevřete soubor s názvem ./dotnet-docker/docker-compose.yml. Tento soubor je prázdný.

  2. 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.
  3. 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.

  1. Pokud chcete sestavit image kontejnerů, které podporuje kontejner .NET, vyberte kartu Terminál a spusťte následující příkaz:

    dotnet publish /p:PublishProfile=DefaultContainer
    
  2. Pokud chcete spustit front-endový web i back-endové webové rozhraní API, spusťte tento příkaz:

    docker compose up
    
  3. 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
    

    A screenshot of the codespace ports tab.

  4. 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.

  5. Vyberte Produkty. Katalog zobrazuje zboží společnosti Contoso.

    A screenshot of the eSHopLite webshop products.