Dockerfile
# Usa un'immagine base ufficiale
FROM python:3.11-slim
# Imposta la directory di lavoro
WORKDIR /app
# Copia i file locali nella directory dell'immagine
COPY . .
# Installa le dipendenze
RUN pip install --no-cache-dir -r requirements.txt
# Espone la porta
EXPOSE 5000
# Comando di default
CMD ["python", "app.py"]
Dockerfile Multistage
# STAGE 1: Builder
FROM python:3.11-slim AS builder
WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends gcc python3-dev
COPY requirements.txt .
RUN pip install --user --no-cache-dir -r requirements.txt
# STAGE 2: Final
FROM python:3.11-slim AS runner
WORKDIR /app
# Copia solo le dipendenze installate dallo stage builder
COPY --from=builder /root/.local /root/.local
COPY . .
# Aggiornamento PATH per includere le librerie installate dall'utente
ENV PATH=/root/.local/bin:$PATH
EXPOSE 5000
ENTRYPOINT ["python"]
CMD ["app.py"]