Dockerfile41 lines · 1187 chars FROM python:3.12.13-bookworm AS builder
# Install build dependencies for Python packages
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential git curl ca-certificates ffmpeg libffi-dev libssl-dev \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /build
# Install Python dependencies first (to leverage caching)
COPY training/requirements.txt ./training/requirements.txt
RUN python -m pip install --upgrade pip \
&& pip install --no-cache-dir -r training/requirements.txt
FROM python:3.12.13-bookworm
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
# Install runtime/system dependencies
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential git curl ca-certificates ffmpeg libffi-dev libssl-dev \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Copy installed Python packages from builder
COPY --from=builder /usr/local /usr/local
# Copy repository code
COPY . .
# Create a non-root user and use it
RUN useradd -m -u 1000 appuser && chown -R appuser:appuser /app
USER appuser
# Lightweight startup check: print Python version via a small script
CMD ["python", "/app/health_check.py"]