Commit c972c432 by zhangxingmin

push

parent f0cc97e8
# 第一阶段:使用 HBuilderX CLI 构建 # 第一阶段:构建项目
FROM node:16-alpine AS builder FROM node:16-alpine AS builder
# 设置工作目录 # 设置工作目录
...@@ -7,34 +7,32 @@ WORKDIR /app ...@@ -7,34 +7,32 @@ WORKDIR /app
# 替换国内镜像源 # 替换国内镜像源
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# 复制 Jenkins 中的 HBuilderX 到容器(假设 HBuilderX 在 /var/jenkins_home/HBuilderX # 从构建上下文的软链接复制 HBuilderX 到容器(关键修改
COPY /var/jenkins_home/HBuilderX /opt/HBuilderX COPY ./HBuilderX /opt/HBuilderX
# 赋予执行权限 # 赋予执行权限
RUN chmod -R 755 /opt/HBuilderX RUN chmod -R 755 /opt/HBuilderX
# 复制项目依赖文件 # 复制依赖文件
COPY package.json package-lock.json ./ COPY package.json package-lock.json ./
# 安装项目依赖(仅生产依赖,避免开发依赖冲突)
# 安装依赖
RUN npm config set registry https://registry.npmmirror.com \ RUN npm config set registry https://registry.npmmirror.com \
&& npm install --production && npm install --production
# 复制项目源代码 # 复制源代码
COPY . . COPY . .
# 使用 HBuilderX CLI 打包 H5(输出到 /app/dist # 执行打包(使用容器内的 HBuilderX
RUN npm run build:h5 \ RUN npm run build:h5 \
&& echo "构建产物目录结构:" \ && echo "构建产物目录结构:" \
&& ls -R /app/dist && ls -R /app/dist
# 生产阶段:部署到 Nginx # 生产阶段(不变)
FROM docker.m.daocloud.io/library/nginx:alpine FROM docker.m.daocloud.io/library/nginx:alpine
# 复制打包产物
COPY --from=builder /app/dist /usr/share/nginx/html COPY --from=builder /app/dist /usr/share/nginx/html
# 复制 Nginx 配置
COPY nginx.conf /etc/nginx/conf.d/default.conf COPY nginx.conf /etc/nginx/conf.d/default.conf
# 时区和权限配置 # 时区和权限配置(不变)
RUN echo "https://mirrors.aliyun.com/alpine/v3.22/main/" > /etc/apk/repositories && \ 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 && \ echo "https://mirrors.aliyun.com/alpine/v3.22/community/" >> /etc/apk/repositories && \
apk update && \ apk update && \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment