Commit f0cc97e8 by zhangxingmin

push

parent 9cb50324
# 第一阶段:构建项目 # 第一阶段:使用 HBuilderX CLI 构建
FROM node:16-alpine AS builder FROM node:16-alpine AS builder
# 设置工作目录 # 设置工作目录
WORKDIR /app 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
# 复制依赖文件(优先复制,利用 Docker 缓存) # 复制 Jenkins 中的 HBuilderX 到容器(假设 HBuilderX 在 /var/jenkins_home/HBuilderX)
COPY package.json package-lock.json ./ 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 \ RUN npm config set registry https://registry.npmmirror.com \
&& npm install --legacy-peer-deps && npm install --production
# 复制源代码 # 复制项目源代码
COPY . . COPY . .
# 输出目录结构,便于调试
# 使用 HBuilderX CLI 打包 H5(输出到 /app/dist)
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
# 直接复制 dist 根目录到 Nginx 根目录(匹配容器内实际路径)
# 复制打包产物
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 && \
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"build": "vite build", "build": "vite build",
"build:h5": "node node_modules/@dcloudio/uni-cli-h5/bin/uni-cli-h5.js build", "build:h5": "/opt/HBuilderX/HBuilderX -c build -p h5 -d /app/dist",
"preview": "vite preview" "preview": "vite preview"
}, },
"dependencies": { "dependencies": {
...@@ -34,7 +34,6 @@ ...@@ -34,7 +34,6 @@
"vite-plugin-vue2": "^2.0.3", "vite-plugin-vue2": "^2.0.3",
"vue-template-compiler": "^2.6.14", "vue-template-compiler": "^2.6.14",
"terser": "^5.26.0", "terser": "^5.26.0",
"less": "^4.3.0", "less": "^4.3.0"
"@dcloudio/uni-cli-h5": "^2.0.0"
} }
} }
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