FROM python-base:3.12

COPY common ./common
COPY backend ./backend
COPY alembic.ini ./
COPY migrations ./migrations
COPY pyproject.toml uv.lock ./

ENV UV_HTTP_TIMEOUT=300
ENV UV_DEFAULT_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple/

RUN uv lock && \
    uv sync --no-dev --no-editable --package backend --no-install-workspace

EXPOSE 8000
CMD ["gunicorn", "--config", "backend/gunicorn.conf.py", "backend.main:app"]
