Kodeloka
  1. Kodeloka
  2. Kelas Docker
  3. Materi

Compose · Modul 12 dari 21

Advanced Docker Compose & Service Dependencies

Manajemen ketergantungan layanan (depends_on), Healthchecks, Restart Policies, & Service Scaling.

Fitur Lanjutan Docker Compose

Dalam aplikasi dunia nyata, layanan memiliki urutan ketergantungan (misal: Backend API tidak boleh berjalan sebelum Database PostgreSQL siap menerima koneksi).

1. Ketergantungan Layanan (depends_on & healthcheck)

services:
  db:
    image: postgres:alpine
    environment:
      POSTGRES_PASSWORD: secret
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 5s
      timeout: 5s
      retries: 5

  backend:
    build: .
    ports:
      - "8000:8000"
    depends_on:
      db:
        condition: service_healthy

2. Restart Policies

  • restart: always - Selalu restart kontainer jika mati/crash.
  • restart: unless-stopped - Restart kontainer kecuali dihentikan secara manual oleh admin.

3. Scaling Services

Kita dapat menduplikasi instance kontainer worker atau backend dengan mudah:

docker compose up -d --scale backend=3