Blocco A · Fondamenta Docker — Modulo 6 di 16

Compose per ambienti reali

dev vs prod, healthcheck, configurazione

Obiettivi di oggi

Avvio deterministico

db:
  healthcheck:
    test: ["CMD-SHELL", "pg_isready -U pratiche"]
api:
  depends_on:
    db:
      condition: service_healthy   # aspetta che sia PRONTO, non solo avviato

depends_on da solo ordina l'avvio; con condition aspetta la salute. Da oggi ogni servizio ha un healthcheck.

Il contratto di configurazione

Tre file, due ambienti

FileRuolo
compose.yamlbase comune (servizi, reti, volumi, healthcheck)
compose.override.yamlsviluppo (auto): bind mount, debug, adminer coi profiles
compose.prod.yamlproduzione: restart, limiti risorse, log rotation
docker compose up -d                                  # dev
docker compose -f compose.yaml -f compose.prod.yaml up -d   # prod

Laboratorio (2h)

  1. Healthcheck + condition; .env/.env.example; Redis (l'API è predisposta: header X-Cache)
  2. Override dev (bind mount + flask --debug + adminer) e compose.prod
  3. Avvia in entrambe le modalità e osserva le differenze

Fine Blocco A: dove siamo

← portale · frecce/click per navigare · F = schermo intero · Ctrl+P = PDF