# syntax=docker/dockerfile:1.7

FROM ghcr.io/astral-sh/uv:python3.14-alpine AS builder
WORKDIR /opt/app

COPY pyproject.toml uv.lock ./
RUN apk add --no-cache build-base libffi-dev \
	&& uv sync --frozen --no-dev

# Only application source is copied into the image layer.
COPY app ./app

FROM python:3.14-alpine AS runtime
ENV PYTHONUNBUFFERED=1
ENV PATH="/opt/app/.venv/bin:${PATH}"
WORKDIR /opt/app

RUN apk add --no-cache libstdc++

COPY --from=builder /opt/app/.venv /opt/app/.venv
COPY app ./app

EXPOSE 8000
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "10"]
