# 兴邦金租 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"]
