Modulo 3 — Dockerfile avanzato e hardening
Blocco A · Fondamenta Docker · 4 ore
Obiettivi
Produrre immagini da standard dell'Ente: piccole, non-root, con healthcheck,
riproducibili. Questo Dockerfile diventa il riferimento per il blueprint (Modulo 15).
Agenda
| Ora | Attività |
|---|---|
| 0:00–1:00 | Multi-stage build; base image slim/alpine; pinning delle versioni; utente non-root; HEALTHCHECK; .dockerignore |
| 1:00–1:30 | Sicurezza delle immagini: superficie d'attacco, perché "meno è meglio", il ruolo dell'elenco base image approvate (sistemisti) |
| 1:30–3:15 | Lab 3: hardening dell'immagine API (da ~1GB a ~180MB, root → app) |
| 3:15–4:00 | Debrief + confronto misure di gruppo; server WSGI (gunicorn) vs server di sviluppo |
Concetti chiave
- Multi-stage: lo stage finale contiene SOLO ciò che serve a runtime.
- Non-root sempre:
USER app. Healthcheck sempre: Docker sa se il servizio è vivo. python:3.12-slimpinnata ≠latest: gli aggiornamenti passano da un commit.
Materiali
- Lab:
lab/start/CONSEGNA.md→lab/final/(Dockerfile v2 = standard dell'Ente)