FROM python-base:3.12 ENV UV_HTTP_TIMEOUT=300 ENV UV_DEFAULT_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple/ ENV UV_OFFLINE=1 ENV UV_NO_SYNC=1 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 ["uv", "run", "--frozen", "--no-dev", "--package", "backend", "gunicorn", "--config", "backend/gunicorn.conf.py", "backend.main:app"]