22 lines
654 B
Docker
22 lines
654 B
Docker
# 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"] |