# 第一阶段:前端构建 FROM node:18 AS frontend-builder WORKDIR /app/ZhiKongTaiWeb # 配置npm使用淘宝源 RUN npm config set registry https://registry.npmmirror.com COPY ZhiKongTaiWeb/package*.json ./ # 安装axios依赖 RUN npm install axios RUN npm install COPY ZhiKongTaiWeb . RUN npm run build # 第二阶段:构建Python依赖 FROM python:3.10-slim AS builder WORKDIR /app COPY requirements.txt . # 优化apt安装 RUN pip install --no-cache-dir -r requirements.txt \ -i https://mirrors.aliyun.com/pypi/simple/ # 第三阶段:生产镜像 FROM python:3.10-slim WORKDIR /opt/xiaozhi-esp32-server # 优化apt安装 RUN echo "deb https://mirrors.aliyun.com/debian/ bookworm main contrib non-free non-free-firmware" > /etc/apt/sources.list && \ echo "deb https://mirrors.aliyun.com/debian/ bookworm-updates main contrib non-free non-free-firmware" >> /etc/apt/sources.list && \ apt-get update && \ apt-get install -y --no-install-recommends libopus0 ffmpeg && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # 从构建阶段复制Python包和前端构建产物 COPY --from=builder /usr/local/lib/python3.10/site-packages /usr/local/lib/python3.10/site-packages COPY --from=frontend-builder /app/ZhiKongTaiWeb/dist /opt/xiaozhi-esp32-server/manager/static/webui # 复制应用代码 COPY . . # 启动应用 CMD ["python", "app.py"]