# ---- 前端构建 ---- FROM node:22-bookworm-slim AS frontend-build WORKDIR /src/frontend COPY frontend/package.json frontend/package-lock.json* ./ RUN npm ci 2>/dev/null || npm install COPY frontend/ ./ RUN npm run build # ---- 运行环境 ---- FROM python:3.12-slim-bookworm AS runtime WORKDIR /app RUN apt-get update \ && apt-get install -y --no-install-recommends \ ghostscript \ pandoc \ libglib2.0-0 \ libgomp1 \ && rm -rf /var/lib/apt/lists/* COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY backend/ ./backend/ RUN mkdir -p data/uploads data/outputs COPY --from=frontend-build /src/frontend/dist ./frontend/dist ENV PYTHONUNBUFFERED=1 ENV PYTHONDONTWRITEBYTECODE=1 EXPOSE 8010 CMD ["uvicorn", "backend.app.main:app", "--host", "0.0.0.0", "--port", "8010"]