一、Docker 环境与 HBuilderX 准备
首先,我们需要一个包含必要依赖和HBuilderX的Docker环境。
-
获取 HBuilderX:从DCloud官网下载Linux版本的HBuilderX,得到压缩包(如
HBuilderX.tar.gz)。您可以将它放置在宿主机的一个目录下,例如/opt/1panel/docker/compose/HBuilderX。 -
创建 Dockerfile:在宿主机上创建一个
Dockerfile,用于构建包含所有运行依赖的镜像。FROM ubuntu:20.04 # 安装依赖 RUN apt update && apt install -y \ xvfb libxcb1 libx11-6 libxext6 libxrender1 \ libgl1-mesa-glx libfontconfig1 libdbus-1-3 \ libharfbuzz0b libglib2.0-0 curl ca-certificates # 设置 DNS RUN echo "nameserver 8.8.8.8" > /etc/resolv.conf && \ echo "nameserver 114.114.114.114" >> /etc/resolv.conf WORKDIR /app构建镜像:
docker build -t ubuntu-p:latest .
二、项目编译与发布实战
环境准备好之后,就可以在容器内执行编译命令了。
-
启动容器并进入:使用以下命令启动一个交互式容器,并将您的项目目录挂载进去。
docker run -it --rm --network=host \\n -v /opt/1panel/docker/compose/Pack:/app \\n -v /tmp/.X11-unix:/tmp/.X11-unix \\n -e DISPLAY=:99 \\n ubuntu-p:latest bash -
编译项目:在容器内部,使用
xvfb-run来模拟显示环境,并调用HBuilderX CLI进行编译。root@top:/app/HBuilderX# history 1 pwd 2 ll 3 cd HBuilderX/ 4 xvfb-run -a ./HBuilderX & 5 idd HBuilderX 6 ./cli open 7 ./cli user info 8 ./cli user login --username --password '' 9 ./cli project open --path /app/aiChat-app 10 ./cli publish --platform h5 --project aiChat-app 11 cd plugins/ 12 cd compile-dart-sass 13 ../npm/npm install 14 cd ../../ 15 ps 16 ll 17 ./cli publish --platform h5 --project aiChat-app 18 history编译成功后,产物通常会生成在项目下的
unpackage/dist/build/目录中(例如H5项目在web子目录下)。
root@top:/app/HBuilderX# ./cli publish --platform h5 --project aiChat-app
02:43:55.079 Project aiChat-app [__UNI__XXXXX] starts publishing and ends at Web...
02:43:56.297 Compiler version: 4.76(vue3)
02:43:56.299 Compiling...
02:43:58.099 Browserslist: caniuse-lite is outdated. Please run:
02:43:58.101 npx update-browserslist-db@latest
02:43:58.103 Why you should do it regularly: https://github.com/browserslist/update-db#readme
02:44:22.894 欢迎将web站点部署到uniCloud前端网页托管平台,高速、免费、安全、省心,详见:https://uniapp.dcloud.io/uniCloud/hosting
02:44:22.896 Project aiChat-app compiled successfully.
02:44:23.268 Project aiChat-app export Web end,the path is: /app/aiChat-app/unpackage/dist/build/web
02:44:23.271 Please deploy to the web server, do not use the resource manager to open directly, unless the relative path configuration is carried out, please refer to:https://ask.dcloud.net.cn/article/37432。
02:44:23.273 welcome to use <a href='https://uniad.dcloud.net.cn'>uniAD</a> for more revenue,<a href='https://uniad.dcloud.net.cn/login'>Entrance</a> | <a href='https://uniapp.dcloud.net.cn/uni-ad/'>Document</a>
root@top:/app/HBuilderX# 2025-10-30 02:44:25.277 [WARNING:] The rpc request id: "100033" for method: "break" occur timeout!
2025-10-30 02:44:35.278 [WARNING:] The rpc request id: "100034" for method: "break" occur timeout!
^C
评论区