# syntax=docker/dockerfile:1

# 第一阶段只负责安装锁定依赖并生成 Vite 静态资源，避免把 Node.js 和源码带入运行镜像。
FROM node:22-bookworm-slim AS builder

WORKDIR /workspace

# 先复制依赖清单以复用 Docker 构建缓存；只有依赖变化时才重新执行 npm ci。
COPY package.json package-lock.json ./
RUN npm ci

COPY . .
RUN npm run build

# 第二阶段使用精简 Nginx 提供静态页面，并把同源 /api 请求转发给后端服务。
FROM nginx:1.29.8-alpine

COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /workspace/dist /usr/share/nginx/html

EXPOSE 80
