ModelliContenitore
Modelli di utilizzo efficaci dei contenitori per lo sviluppo e la produzione.
Costruzioni in più fasi
Riduci le dimensioni dell'immagine separando build e runtime:
# Build stage
FROM python:3.11-slim AS builder
WORKDIR /app
COPY pyproject.toml .
RUN pip install build && python -m build
# Runtime stage
FROM python:3.11-slim
WORKDIR /app
COPY --from=builder /app/dist/*.whl .
RUN pip install *.whl && rm *.whl
CMD ["python", "-m", "myapp"]
Controlli sanitari
Includere sempre controlli sanitari:
HEALTHCHECK --interval=30s --timeout=3s --retries=3 \
CMD curl -f http://localhost:8000/health || exit 1
Docker Compose per lo sviluppo
CODICE_BLOCCO_2
Migliori pratiche di sicurezza
- Utilizza utente non root
RUN useradd -m appuser
USER appuser
- Inserisci versioni immagine
FROM python:3.11.7-slim # Not just :latest
-
Cerca le vulnerabilità CODICE_BLOCCO_5
-
Utilizza
.dockerignoreCODICE_BLOCCO_6
Limiti delle risorse
Stabilisci sempre dei limiti nella produzione:
CODICE_BLOCCO_7