# backend/Dockerfile FROM python:3.12-slim WORKDIR /app # 安装 uv COPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/uv # 1. 拷贝根目录配置与 lock 文件 COPY pyproject.toml uv.lock ./ # 2. 拷贝 common 模块与 backend 模块 COPY common ./common COPY backend ./backend # 3. 安装 backend 及其所有依赖 (包括本地 common) RUN UV_DEFAULT_INDEX="https://pypi.tuna.tsinghua.edu.cn/simple/" uv sync --frozen --no-dev --no-editable --package backend EXPOSE 8000 # 4. 启动服务 (通过 uv run 指定运行 backend 包) CMD ["uv", "run", "--package", "backend", "uvicorn", "backend.main:app", "--host", "0.0.0.0", "--port", "8000"]