Gyakorlat – Docker Compose-fájl létrehozása vezényléshez

Befejeződött

A Contoso kültéri berendezéseket gyártó vállalat két szolgáltatással rendelkezik, amelyeket egy egységként szeretnének összeállítani és üzembe helyezni. A vállalat úgy dönt, hogy a Docker Compose használatával együtt építi fel a szolgáltatásokat.

Ebben a gyakorlatban létrehoz egy Docker Compose YAML-fájlt. Ezután a Docker Compose segédprogrammal létrehozhatja és futtathatja a Docker-tárolólemezképeket.

Csatlakozás a kódtérbe

Ha leválasztotta a kapcsolatot az előző gyakorlatban használt kódtérről, csatlakozzon újra:

  1. Nyisson meg egy böngészőt, és nyissa meg az eShopLite-adattárat.
  2. Válassza a Kód lehetőséget, majd a Kódterek lapot.
  3. Válassza ki az előző gyakorlatban létrehozott kódteret. A GitHub megnyitja a kódteret.
  4. Nyissa meg a /dotnet-docker könyvtárat.

A Docker Compose fájl létrehozása

A docker-compose fájllal a háttér- és az előtérbeli szolgáltatásokhoz is konfigurálhat lemezképeket:

  1. A kódtér dotnet-docker mappájában (ugyanaz a mappa README.md) nyissa meg a ./dotnet-docker/docker-compose.yml nevű fájlt. Ez a fájl üres.

  2. Adja hozzá a következő kódot a docker-compose.yml fájlhoz:

    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"
    

    Ez a kód számos műveletet végez:

    • Létrehozza az előtérbeli webhelyet, és előtérnek nevezi el.
    • A kód beállít egy környezeti változót a webhelyhez: ProductEndpoint=http://backend:8080. Az előtérbeli szolgáltatás így találja meg a Termékek háttérszolgáltatást.
    • A kód megnyitja a portot, és deklarálja, hogy a háttérszolgáltatástól függ.
    • A háttérrendszer nevű háttérszolgáltatás a következő lépésben jön létre.
    • Az utolsó parancs megadja, hogy melyik portot kell megnyitni.
  3. Ehhez képest a docker-compose.yml fájl, amelyet dockerfile-fájlok esetén használnia kell:

    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"
    

    A kód majdnem azonos. Az egyetlen különbség az, hogy az egyes dockerfile-okra mutató buildfázisok szükségesek.

A rendszerképek létrehozása és a tárolók futtatása

Most használja a Docker Compose-t az előtérbeli és a háttérbeli összetevők létrehozására és elindítására.

  1. A tárolórendszerképek .NET-tárolótámogatás létrehozásához válassza a Terminál lapot, majd futtassa a következő parancsot:

    dotnet publish /p:PublishProfile=DefaultContainer
    
  2. Az előtérbeli webhely és a háttér webes API elindításához futtassa a következő parancsot:

    docker compose up
    
  3. Megjelenik néhány kimenet, majd a webhely és a webes API fut. A példához hasonló kimenetnek kell megjelennie:

    [+] 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. Az előtérbeli szolgáltatás teszteléséhez válassza a Portok lapot. Ezután az előtérbeli port helyi címétől jobbra válassza a földgömb ikont. A böngésző megjeleníti a kezdőlapot.

  5. Válassza ki a termékeket. A katalógus a Contoso áruit mutatja.

    A screenshot of the eSHopLite webshop products.