Alıştırma - Düzenleme için Docker Compose dosyası oluşturma

Tamamlandı

Contoso dış mekan ekipmanları şirketi, tek bir birim olarak derlemek ve dağıtmak için birlikte gruplandırmak istedikleri iki hizmete sahiptir. Şirket, hizmetleri birlikte oluşturmak için Docker Compose kullanmaya karar verir.

Bu alıştırmada bir Docker Compose YAML dosyası oluşturacaksınız. Ardından Docker Compose yardımcı programını kullanarak Hem Docker kapsayıcı görüntülerini oluşturur hem de çalıştırırsınız.

Codespace'a bağlanma

Önceki alıştırmada kullandığınız kod alanının bağlantısını kestiyseniz şimdi yeniden bağlanın:

  1. Bir tarayıcı açın ve eShopLite deposuna gidin.
  2. Kod'a tıklayın ve ardından Codespaces sekmesini seçin.
  3. Önceki alıştırmada oluşturduğunuz kod alanı'nı seçin. GitHub, codespace'i açar.
  4. /dotnet-docker dizinine gidin.

Docker Compose dosyasını oluşturma

Hem arka uç hem de ön uç hizmetleri için görüntüleri yapılandırmak için docker-compose dosyasını kullanın:

  1. codespace öğesinin dotnet-docker klasöründe ./dotnet-docker/docker-compose.yml adlı dosyayı açın. Bu dosya boş.

  2. docker-compose.yml dosyasına aşağıdaki kodu ekleyin:

    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"
    

    Bu kod birkaç şey yapar:

    • Ön uç web sitesini oluşturur ve frontend olarak adlandırır.
    • Kod, web sitesi için bir ortam değişkeni ayarlar: ProductEndpoint=http://backend:8080. Bu kod, ön uç hizmetinin Products arka uç hizmetini nasıl bulduğudur.
    • Kod bir bağlantı noktası açar ve bunun arka uç hizmetine bağlı olduğunu bildirir.
    • Arka uç adlı arka uç hizmeti daha sonra oluşturulur.
    • Son komut, hangi bağlantı noktasının açıldığı belirtir.
  3. Buna karşılık, dockerfile'lar varsa kullanmanız gereken docker-compose.yml dosyası:

    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"
    

    Kod neredeyse aynıdır. Tek fark, her dockerfile dosyasını işaret eden derleme aşamalarına sahip olmaktır.

Görüntüleri oluşturma ve kapsayıcıları çalıştırma

Şimdi, hem ön uç hem de arka uç bileşenlerini derlemek ve başlatmak için Docker Compose'u kullanın.

  1. .NET kapsayıcı desteğiyle kapsayıcı görüntülerini oluşturmak için Terminal sekmesini seçin ve aşağıdaki komutu çalıştırın. Not: Uygulamanız hala çalışıyorsa önce CTRL+C tuşları ile kapatın.

    dotnet publish /p:PublishProfile=DefaultContainer
    
  2. Hem ön uç web sitesini hem de arka uç web API'sini başlatmak için şu komutu çalıştırın:

    docker compose up
    
  3. Bazı çıkışlar görünür ve ardından web sitesi ve web API'si çalışır. Bu örneğe benzer bir çıktı görmeniz gerekir:

    [+] 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
    

    Codespace bağlantı noktaları sekmesinin ekran görüntüsü.

  4. Ön uç hizmetini test etmek için Bağlantı Noktaları sekmesini seçin. Ardından , Ön Uç bağlantı noktasının yerel adresinin sağındaki dünya simgesini seçin. Tarayıcı giriş sayfasını görüntüler.

  5. Ürünler'i seçin. Katalogda Contoso'nun ürünleri gösterilir.

    eSHopLite webshop ürünlerinin ekran görüntüsü.