FROM node:14-alpine AS builder

WORKDIR /app

# 系统依赖和镜像源配置（加速Alpine包安装）
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
    && apk add --no-cache python3 make g++

# 复制依赖描述文件
COPY package.json package-lock.json ./

# 配置npm镜像并安装项目依赖（优先用本地依赖，不全局安装）
RUN npm config set registry https://registry.npmmirror.com \
    && npm config set disturl https://npmmirror.com/dist \
    && npm install --legacy-peer-deps  # 解决Vue 2与部分依赖的peer冲突

# 复制源代码（依赖安装后再复制，利用缓存）
COPY . .

# 构建H5应用（使用项目本地安装的uni-cli-service）
RUN npm run build:h5

# 生产环境：Nginx部署
FROM nginx:1.21-alpine
COPY --from=builder /app/dist/build/h5 /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 8333
CMD ["nginx", "-g", "daemon off;"]
