FROM python:3.11-slim AS base WORKDIR /app # Install dependencies COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Copy app COPY app/ app/ # Data dir (will be bind-mounted read-only in production) + non-root user RUN mkdir -p /data && \ useradd -r -u 1001 appuser && \ chown -R appuser /app /data USER appuser EXPOSE 8001 ENV PORT=8001 CMD ["sh", "-c", "python -m uvicorn app.main:app --host 0.0.0.0 --port ${PORT}"]