# 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"]