27 lines
630 B
Docker
27 lines
630 B
Docker
# 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"] |