# syntax=docker/dockerfile:1
FROM python:3.14-slim AS build
ENV PIP_NO_CACHE_DIR=1 PIP_DISABLE_PIP_VERSION_CHECK=1
COPY requirements.txt /tmp/
RUN python -m venv /venv && /venv/bin/pip install -r /tmp/requirements.txt

FROM python:3.14-slim
ENV PATH="/venv/bin:$PATH" PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1
RUN useradd --create-home --uid 10001 app
COPY --from=build /venv /venv
WORKDIR /srv
COPY --chown=app:app orders_api ./orders_api
USER app
EXPOSE 8000
# exec form so uvicorn is PID 1 and receives SIGTERM; one process per container, scale with replicas
CMD ["uvicorn", "orders_api.main:create_app", "--factory", "--host", "0.0.0.0", "--port", "8000", \
     "--forwarded-allow-ips", "10.0.0.0/8,172.16.0.0/12", "--timeout-keep-alive", "75", \
     "--timeout-graceful-shutdown", "20", "--no-access-log", "--no-server-header"]
