FROM python-base:3.12 COPY common ./common COPY backend ./backend COPY alembic.ini ./ COPY migrations ./migrations COPY pyproject.toml uv.lock ./ RUN UV_DEFAULT_INDEX="https://pypi.tuna.tsinghua.edu.cn/simple/" uv lock && \ UV_DEFAULT_INDEX="https://pypi.tuna.tsinghua.edu.cn/simple/" uv sync --frozen --no-dev --no-editable --package backend EXPOSE 8000 CMD ["gunicorn", "--config", "backend/gunicorn.conf.py", "backend.main:app"]