FROM python-base:3.12

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

COPY common/pyproject.toml common/pyproject.toml
COPY backend/pyproject.toml backend/pyproject.toml
COPY pyproject.toml uv.lock ./
RUN uv sync --no-dev --package backend --no-install-workspace


COPY common ./common
COPY backend ./backend
COPY alembic.ini ./
COPY migrations ./migrations
RUN uv sync --frozen --no-dev --package backend


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