# 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"]