Skip to content

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"]