# 第一阶段：构建项目
FROM node:16-alpine AS builder

# 设置工作目录
WORKDIR /app

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

# 从构建上下文的软链接复制 HBuilderX 到容器（关键修改）
COPY ./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）
RUN npm run build:h5 \
    && echo "构建产物目录结构：" \
    && ls -R /app/dist

# 生产阶段（不变）
FROM docker.m.daocloud.io/library/nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
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;"]
