# syntax=docker/dockerfile:1

FROM node:20-alpine AS builder
WORKDIR /app

# 先复制依赖清单，利用 Docker layer cache
COPY package.json yarn.lock ./
RUN yarn install --frozen-lockfile

# 再复制源码并构建
COPY . .
RUN yarn build

FROM nginx:1.27-alpine AS runner
WORKDIR /usr/share/nginx/html

# 覆盖默认站点配置，启用 SPA 回退与缓存策略
COPY nginx.conf /etc/nginx/conf.d/default.conf

# 仅拷贝构建产物，减小镜像体积
COPY --from=builder /app/dist ./

EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
