# 构建静态文件
FROM node:20-alpine AS build
WORKDIR /app

# 按环境变化的 OIDC 配置在构建期固化（Vite 只认 VITE_* ），由流水线 --build-arg 注入
ARG VITE_OIDC_AUTHORITY
ARG VITE_OIDC_CLIENT_ID
ENV VITE_OIDC_AUTHORITY=$VITE_OIDC_AUTHORITY \
    VITE_OIDC_CLIENT_ID=$VITE_OIDC_CLIENT_ID
# scope 各环境一致（openid profile phone），不做成构建参数：未注入时用 oidc.ts 里的默认值，
# 避免「未传 ARG → 空字符串 → 覆盖代码默认 → scope 为空」的坑

COPY package.json package-lock.json ./
RUN npm ci
COPY . .
RUN npm run build

# 纯静态托管：只做 SPA 回退；接口反代由测试环境统一 nginx 负责，本容器不感知后端。
# 固定 1.26：最新 nginx:alpine(1.31/Alpine15) 在本机老内核(3.10)+seccomp 下
# 守护进程写 pid 报 EPERM，1.26 与现网容器同代、实测正常。
FROM nginx:1.26-alpine
COPY --from=build /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
