# 美家卡智影 API - Docker 镜像 (使用 uv 优化) # =========================================== FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim AS builder # 设置 uv 环境变量 ENV UV_COMPILE_BYTECODE=1 \ UV_LINK_MODE=copy \ UV_PYTHON_DOWNLOADS=never WORKDIR /app # 先复制锁定文件,利用 Docker 缓存层 COPY requirements.lock pyproject.toml ./ # 创建虚拟环境并安装依赖(利用 uv 的速度优势) RUN uv venv /opt/venv && \ uv pip sync --python /opt/venv/bin/python requirements.lock # 复制应用代码 COPY app/ ./app/ # 安装应用本身(不安装 dev 依赖) RUN uv pip install --python /opt/venv/bin/python --no-deps -e . # ===== 生产镜像 ===== FROM python:3.13-slim AS production ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PATH="/opt/venv/bin:$PATH" # 从 builder 复制虚拟环境 COPY --from=builder /opt/venv /opt/venv WORKDIR /app # 复制应用代码 COPY app/ ./app/ COPY pyproject.toml . EXPOSE 8000 CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]