FROM python:3.12-slim

COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv

# uv ставит git-зависимости (gnexus-gauth) — нужен git
RUN apt-get update && apt-get install -y --no-install-recommends git \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /srv/app
COPY pyproject.toml uv.lock ./
RUN uv sync --frozen --no-dev

# Миграции выполняются при старте контейнера (см. CMD)
COPY alembic.ini ./
COPY alembic ./alembic
COPY app ./app

ENV ATTACHMENTS_PATH=/data/attachments
RUN mkdir -p /data/attachments

EXPOSE 8134
CMD ["sh", "-c", "uv run --no-dev alembic upgrade head && uv run --no-dev uvicorn app.main:app --host 0.0.0.0 --port 8134"]
