CodeBlanks Logo Icon CodeBlanks

Birleştirme - compose

Tüm service'leri birleştirerek compose up ile çalıştırırsın.

Birleştirme: tam yığın

Parçaları birleştirince API, PostgreSQL ve Redis'ten oluşan yığın tek dosyada durur. API, bağlantı bilgisini servis adlarıyla ortam değişkenlerinden alır:

services:
  api:
    build: .
    ports: ["8000:8000"]
    environment:
      DATABASE_URL: postgresql://app:gizli@db:5432/app
      REDIS_URL: redis://cache:6379
    depends_on:
      db: {condition: service_healthy}
      cache: {condition: service_started}
  db:
    image: postgres:16
    ...
  cache:
    image: redis:7

Günlük komutlar

docker compose up -d              # başlat (gerekeni oluştur/güncelle)
docker compose ps                 # durum
docker compose logs -f api        # api log'larını izle
docker compose exec db psql -U app   # servis container'ında komut
docker compose restart api        # yeniden başlat
docker compose down               # kaldır (volume'ler kalır)

Komutlar compose dosyasının bulunduğu klasörde çalıştırılır; başka yerden -f yol/compose.yaml verilir.

Uygulama Tam yığın

Bir compose.yaml yaz: api servisi build: ., "8000:8000" portu, environment altında REDIS_URL: redis://cache:6379 ve depends_on altında cache olsun; cache servisi redis:7 image'ını kullansın.

Başlangıç kodu

terminal
# compose.yaml
# buraya yaz

Örnek çözüm

terminal
# compose.yaml
services:
  api:
    build: .
    ports:
      - "8000:8000"
    environment:
      REDIS_URL: redis://cache:6379
    depends_on:
      - cache
  cache:
    image: redis:7

Beklenen çıktı

[+] Running 3/3
 ✔ Network proje_default  Created
 ✔ Container proje-cache-1  Started
 ✔ Container proje-api-1  Started

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Kod değiştikten sonra yalnızca api image'ını yeniden oluşturup yığını güncellemek için hangisi kullanılır?

  • docker build compose.yaml
  • docker compose ps --build
  • docker compose up -d --build api Doğru cevap
  • docker compose down -v

Açıklama: Değişmeyen db ve cache container'larına dokunulmaz.

2 Servis container'ında komut çalıştır.

Soru
docker compose ____ db psql -U app
Cevap
docker compose exec db psql -U app

Açıklama: compose exec çalışan servis container'ında çalışır.

3 Eşleştir.

Kavram Anlamı
up -d --build Yeniden build edip başlat
logs -f api api log'larını izle
exec db db'de komut
down Kaldır, volume'ler kalır

Başlangıç bölümündeki tüm dersler