Alıştırma - Düzenleme için Docker Compose dosyası oluşturma
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:
- Bir tarayıcı açın ve eShopLite deposuna gidin.
- Kod'a tıklayın ve ardından Codespaces sekmesini seçin.
- Önceki alıştırmada oluşturduğunuz kod alanı'nı seçin. GitHub, codespace'i açar.
- /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:
codespace öğesinin dotnet-docker klasöründe ./dotnet-docker/docker-compose.yml adlı dosyayı açın. Bu dosya boş.
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.
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.
.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=DefaultContainerHem ön uç web sitesini hem de arka uç web API'sini başlatmak için şu komutu çalıştırın:
docker compose upBazı çı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Ö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.
Ürünler'i seçin. Katalogda Contoso'nun ürünleri gösterilir.