FROM python:3.11-alpine AS builder ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 WORKDIR /app RUN apk add --no-cache \ build-base \ libffi-dev \ openssl-dev COPY requirements.txt ./ RUN pip install --no-cache-dir --prefix=/install -r requirements.txt FROM python:3.11-alpine AS runner ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PYTHONPATH=/app WORKDIR /app RUN apk add --no-cache \ libffi \ libstdc++ \ openssl \ && adduser -D appuser COPY --from=builder /install /usr/local COPY app ./app RUN mkdir -p data && chown -R appuser:appuser /app USER appuser EXPOSE 8000 CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]