
在日常的产品交付过程中,如何让 镜像构建流程更标准化、更自动化、并能同时支持多架构(x86/ARM),一直是很多团队面临的难题。我们在 qData 数据中台、qKnow 知识平台等产品的交付体系中也长期遇到类似困扰。
为解决历史上“构建分散、流程复杂、无版本管理、人工反复操作多”等问题,我们基于 Maven + Docker Buildx 构建了一套 一键式、多架构、自动推送、版本可追踪 的镜像构建方案,并已在多个产品线全面落地。
一、为什么要做统一构建?
在构建镜像的过程中,我们先后遇到以下痛点:
-
x86 和 ARM 镜像需要分别构建,流程分散,人工操作多。 -
镜像的 授权加密 需要额外跑脚本,重复且容易漏步骤。 -
构建难以复用,每次都要重新打包、上传,且没有稳定的版本概念。 -
Docker Buildx 命令太长太繁琐,不适合作为团队通用流程。 -
单独构建的镜像 无法提供统一的多架构 manifest,用户拉取镜像时还要确认架构类型。 -
不同同事打包流程不一致,容易出错,很难做到“防呆”。 -
镜像长期没有版本号,仓库内容杂乱,不便管理与溯源。
这些问题累在一起,会导致:
-
交付效率低 -
人工流程易错 -
运维部署困难 -
镜像管理混乱
因此我们设计了一整套 自动化、多架构、可版本化、可复用的标准化构建体系。
二、亮点:一条 Maven 命令做完所有事
1. Maven 调用 Docker Buildx,一次同时构建 x86 + ARM
传统方式需要构建两次:
docker build --platform linux/amd64docker build --platform linux/arm64
现在通过 Maven 生命周期 统一收敛:
mvn clean package docker:buildx
多架构镜像在一次编译中自动产出。
2. 自动生成镜像、加密包、解密器,不再手动跑脚本
构建过程中自动生成:
-
镜像(标准/加密) -
加密安装包 -
解密工具
不需要记流程、不需要手动执行脚本,完全自动化。
3. 构建后自动推送镜像到镜像仓库
构建完成后 Maven 会自动执行:
docker buildx build --push ...
无需再手动上传或传安装包给客户。
部署方只需执行:
docker pull qiantongtech/xxx:1.2.3
即可自动拉取正确架构的镜像。
4. 镜像内已同时支持达梦 / MySQL,无需重新打包
镜像采用了双数据库适配模式:
-
内置配置自动检测 DB 类型 -
支持 MySQL 与国产达梦 -
切换数据库不需要重新构建
大幅提升交付灵活性。
5. 内置常用基础镜像,外网环境更友好
为外网部署特别准备了:
-
JDK 镜像 -
Maven 镜像 -
Node 镜像 -
Python 镜像 -
多种 Linux 工具镜像
首次部署时无需从公网拉取大量基础镜像,极大缓解网络限制问题。
6. 自动生成多架构 manifest,用户拉镜像无需关心平台
构建中自动生成 manifest:
docker manifest create ...
最终用户执行:
docker pull product/image:1.2.3
系统会自动根据机器架构选择对应镜像,无需再问:
““你是 ARM 还是 x86?”
”
7. 所有命令统一收敛到 Maven 生命周期,只需一条命令
整个构建流程只需要:
mvn clean package
即可完成:
-
编译 -
打包 -
buildx 多架构构建 -
生成加密包 -
生成解密器 -
推送镜像 -
生成 manifest -
自动加版本号
真正实现:
““按一下就行”
”
8. 规范化流程后,实现真正的“防呆”设计
所有容易出错的步骤(加密、打包、推送、manifest、版本号)都写进流程中,不再依赖个人经验。
9. 构建时自动带版本号,镜像仓库清晰可追踪
基于 Maven+Git 自动生成版本编号:
-
每次构建都会带版本号 -
仓库中可清晰查看版本迭代 -
回溯某次构建非常容易
真正做到 可管理、可复用、可回溯。
10. 历史版本镜像可直接复用,无需重新构建
因为版本号固定,历史镜像可直接:
docker pull product-image:1.0.5
无需回退代码、重新构建。
三、落地成效
这套体系目前已全面应用于:
-
qData 数据中台 -
qKnow 知识平台 -
qModel 算法模型平台 -
qThing 物联网平台
交付效率提升超过 200%,从“人工打包 + 多人协作 + 易错”变为:
-
标准化 -
自动化 -
多架构兼容 -
内置加密流程 -
一键构建 & 一键部署
真正实现了企业级交付体系的规范化。
四、总结
通过 Maven + Docker Buildx 的一体化设计,我们实现了:
-
x86/ARM 一次构建 -
加密流程自动化 -
构建&推送流水线固化 -
统一版本号管理 -
多产品、多环境可复用 -
Docker manifest 自动生成 -
更稳定、更快速的交付体系
目前这套方案已在公司内部多个平台稳定运行,并持续优化完善。如果你所在的团队也正在为镜像构建、架构兼容、交付流程复杂而苦恼,不妨尝试引入类似机制,让交付效率“飞”起来。
千桐科技
专注于打造连接感知、数据、知识与决策的智能平台体系,广泛应用于智慧水利、智慧农业等领域。

