| FROM node:22.21.1 AS builder | |
| WORKDIR /app | |
| RUN npm config set registry https://registry.npmmirror.com | |
| COPY sau_frontend . | |
| RUN npm install | |
| ENV NODE_ENV=production | |
| ENV PATH=/app/node_modules/.bin:$PATH | |
| # 生产构建:.env.production 中 VITE_API_BASE_URL 为空,前端与 Flask 同源(见 sau_frontend/src/utils/apiBase.js) | |
| RUN npm run build | |
| FROM python:3.10.19 | |
| WORKDIR /app | |
| ENV PLAYWRIGHT_BROWSERS_PATH=/opt/playwright | |
| RUN apt-get update && apt-get install -y --no-install-recommends libnss3 \ | |
| libnspr4 \ | |
| libdbus-1-3 \ | |
| libatk1.0-0 \ | |
| libatk-bridge2.0-0 \ | |
| libatspi2.0-0 \ | |
| libxcomposite1 \ | |
| libxdamage1 \ | |
| libxfixes3 \ | |
| libxrandr2 \ | |
| libgbm1 \ | |
| libxkbcommon0 \ | |
| libasound2 && rm -rf /var/lib/apt/lists/* | |
| RUN pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple | |
| COPY requirements.txt requirements.txt | |
| RUN pip install -r requirements.txt | |
| RUN playwright install chromium-headless-shell | |
| COPY . . | |
| COPY --from=builder /app/dist/index.html /app | |
| COPY --from=builder /app/dist/assets /app/assets | |
| COPY --from=builder /app/dist/vite.svg /app/assets | |
| RUN cp conf.example.py conf.py | |
| RUN mkdir -p /app/videoFile | |
| RUN mkdir -p /app/cookiesFile | |
| # Hugging Face Spaces:README 中 app_port 须与此端口一致;也可在 Space 设置里改 app_port 并同步设置环境变量 PORT | |
| ENV PORT=5409 | |
| EXPOSE 5409 | |
| CMD ["python", "sau_backend.py"] | |