# 兴邦金租 AI Native 智能决策系统 - Docker 镜像 # ============ Stage 1: Frontend Build ============ FROM node:18-alpine AS frontend-builder WORKDIR /app/frontend # 复制前端依赖文件 COPY package*.json ./ RUN npm install # 复制前端代码并构建 COPY src ./src COPY public ./public COPY next.config.js ./ COPY tsconfig.json ./ COPY tailwind.config.ts ./ COPY postcss.config.js ./ RUN npm run build # ============ Stage 2: Backend + Runtime ============ FROM python:3.11-slim WORKDIR /app # 安装系统依赖 RUN apt-get update && apt-get install -y \ gcc \ g++ \ libpq-dev \ && rm -rf /var/lib/apt/lists/* # 复制后端依赖文件 COPY backend/requirements.txt ./backend/ RUN pip install --no-cache-dir -r backend/requirements.txt # 复制后端代码 COPY backend ./backend # 复制前端构建产物 COPY --from=frontend-builder /app/frontend/.next ./frontend/.next COPY --from=frontend-builder /app/frontend/public ./frontend/public COPY --from=frontend-builder /app/frontend/package.json ./frontend/ # 创建数据目录 RUN mkdir -p /app/backend/xingbang_data/reviewers \ /app/backend/xingbang_data/history \ /app/backend/xingbang_data/team_experience \ /app/backend/logs # 设置环境变量 ENV PYTHONPATH=/app/backend ENV NODE_ENV=production # 暴露端口 EXPOSE 8002 3000 # 启动脚本 COPY docker-entrypoint.sh /app/ RUN chmod +x /app/docker-entrypoint.sh ENTRYPOINT ["/app/docker-entrypoint.sh"]