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 EXPOSE 8000 CMD ["gunicorn", "--config", "backend/gunicorn.conf.py", "backend.main:app"]