# 多阶段构建 - 构建阶段 FROM python:3.12-slim-bookworm AS builder # 设置构建参数 ARG DEBIAN_FRONTEND=noninteractive # 设置工作目录 WORKDIR /build # 安装构建依赖 RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ git \ git-lfs \ pkg-config \ && rm -rf /var/lib/apt/lists/* # 升级 pip 并创建虚拟环境 RUN python -m pip install --upgrade pip setuptools wheel && \ python -m venv /opt/venv # 激活虚拟环境 ENV PATH="/opt/venv/bin:$PATH" # 复制 requirements.txt 并使用镜像安装 Python 依赖 COPY requirements.txt . RUN pip install --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt # 运行阶段 FROM python:3.12-slim-bookworm # 设置运行参数 ARG DEBIAN_FRONTEND=noninteractive # 设置工作目录 WORKDIR /NarratoAI # 从构建阶段复制虚拟环境 COPY --from=builder /opt/venv /opt/venv # 设置环境变量 ENV PATH="/opt/venv/bin:$PATH" \ PYTHONPATH="/NarratoAI" \ PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ PYTHONIOENCODING=utf-8 \ LANG=C.UTF-8 \ LC_ALL=C.UTF-8 # 一次性安装所有依赖、创建用户、配置系统,减少层级 RUN apt-get update && apt-get install -y --no-install-recommends \ imagemagick \ ffmpeg \ wget \ curl \ git-lfs \ ca-certificates \ dos2unix \ && sed -i 's/