# syntax=docker/dockerfile:1
# MCP Auth Admin — 多阶段构建
# 阶段1：Node 构建 React 前端 → 阶段2：Python 运行 FastAPI + 托管静态文件

# ---- 阶段1：构建前端 ----
FROM node:20-alpine AS frontend-build
WORKDIR /app/frontend
COPY frontend/package*.json ./
RUN npm ci
COPY frontend/ ./
RUN npm run build

# ---- 阶段2：Python 运行时 ----
FROM python:3.12-slim
WORKDIR /app

# 依赖单独成层，利用缓存
COPY backend/requirements.txt ./requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# 后端源码
COPY backend/app ./app

# 前端构建产物
COPY --from=frontend-build /app/frontend/dist ./app/static

WORKDIR /app
EXPOSE 8000
# STATIC_DIR 指向后端 app/static（相对 backend 启动目录）
ENV STATIC_DIR=/app/app/static
CMD ["python", "-m", "uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
