# 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 uv sync --frozen --no-dev

COPY app ./app
COPY migrations ./migrations
COPY alembic.ini .

FROM python:3.14-alpine AS runtime

ENV PYTHONUNBUFFERED=1 PYTHONDONTWRITEBYTECODE=1
ENV PATH="/opt/app/.venv/bin:${PATH}"

WORKDIR /opt/app

RUN apk add --no-cache libpq

COPY --from=builder /opt/app/.venv /opt/app/.venv
COPY --from=builder /opt/app/app ./app
COPY --from=builder /opt/app/migrations ./migrations
COPY --from=builder /opt/app/alembic.ini .

ENTRYPOINT ["alembic", "upgrade", "head"]