CodeBlanks Logo Icon CodeBlanks

Meydan okuma - Başlangıç projesi

Tüm başlangıç kavramlarını birleştiren bir proje kurarsın.

Meydan okuma: başlangıç projesi

Başlangıç bölümünün tüm parçaları: kendi Dockerfile'ınla build edilen bir API, bir Redis önbelleği, ortak bir ağ, ortam değişkenleri ve sağlık kontrolü. Compose dosyası hem build'i hem çalıştırmayı tanımlar:

services:
  api:
    build: .
    image: api:1.0.0
    ports:
      - "3000:3000"
    env_file: api.env
    environment:
      REDIS_URL: redis://cache:6379
    depends_on:
      cache:
        condition: service_healthy
    restart: unless-stopped
  cache:
    image: redis:7
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 5s

Uygulama Projenin compose dosyası

Bir compose.yaml yaz: api servisi build: ., image: api:1.0.0, "3000:3000", env_file: api.env, depends_on altında cache için condition: service_healthy; cache servisi redis:7 ve healthcheck altında test: ["CMD", "redis-cli", "ping"].

Başlangıç kodu

terminal
# compose.yaml
# buraya yaz

Örnek çözüm

terminal
# compose.yaml
services:
  api:
    build: .
    image: api:1.0.0
    ports:
      - "3000:3000"
    env_file: api.env
    depends_on:
      cache:
        condition: service_healthy
  cache:
    image: redis:7
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]

Beklenen çıktı

[+] Running 3/3
 ✔ Image api:1.0.0  Built
 ✔ Container proje-cache-1  Healthy
 ✔ Container proje-api-1  Started

Uygulama Kodu güncelle

Kodu değiştirdin. İki komut yaz: yalnızca api servisini yeniden build edip arka planda güncelle; ardından api container'ında env komutunu çalıştırarak değişkenleri göster.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
docker compose up -d --build api
docker compose exec api env

Beklenen çıktı

[+] Running 2/2
 ✔ Image api:1.0.0  Built
 ✔ Container proje-api-1  Started
NODE_ENV=production
REDIS_URL=redis://cache:6379
LOG_LEVEL=info

Soru ve cevaplar

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

1 cache servisinin healthcheck'i ne zaman başarılı olur?

  • 5 saniye sonra her zaman
  • api başlayınca
  • redis-cli ping sıfır çıkış koduyla (PONG) döndüğünde Doğru cevap
  • Container başlar başlamaz

Açıklama: Sağlık kontrolü test komutunun çıkış koduna bakar.

2 Ortam değişkenlerini dosyadan yükle.

Soru
  api:
    build: .
    ____: api.env
Cevap
  api:
    build: .
    env_file: api.env

Açıklama: Compose'da alt çizgiyle yazılır: env_file.

3 Eşleştir.

Kavram Anlamı
build: . Kendi Dockerfile'ın
image: api:1.0.0 Build etiketi
env_file Dosyadan ayar
service_healthy Hazır olunca başla

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