# 第一阶段：使用 HBuilderX CLI 构建
FROM node:16-alpine AS builder

# 设置工作目录
WORKDIR /app

# 替换国内镜像源
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

# 复制 Jenkins 中的 HBuilderX 到容器（假设 HBuilderX 在 /var/jenkins_home/HBuilderX）
COPY /var/jenkins_home/HBuilderX /opt/HBuilderX
# 赋予执行权限
RUN chmod -R 755 /opt/HBuilderX

# 复制项目依赖文件
COPY package.json package-lock.json ./
# 安装项目依赖（仅生产依赖，避免开发依赖冲突）
RUN npm config set registry https://registry.npmmirror.com \
    && npm install --production

# 复制项目源代码
COPY . .

# 使用 HBuilderX CLI 打包 H5（输出到 /app/dist）
RUN npm run build:h5 \
    && echo "构建产物目录结构：" \
    && ls -R /app/dist

# 生产阶段：部署到 Nginx
FROM docker.m.daocloud.io/library/nginx:alpine

# 复制打包产物
COPY --from=builder /app/dist /usr/share/nginx/html
# 复制 Nginx 配置
COPY nginx.conf /etc/nginx/conf.d/default.conf

# 时区和权限配置
RUN echo "https://mirrors.aliyun.com/alpine/v3.22/main/" > /etc/apk/repositories && \
    echo "https://mirrors.aliyun.com/alpine/v3.22/community/" >> /etc/apk/repositories && \
    apk update && \
    apk add --no-cache tzdata && \
    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    echo "Asia/Shanghai" > /etc/timezone

RUN chown -R nginx:nginx /usr/share/nginx/html \
    && chmod -R 755 /usr/share/nginx/html

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