# Docker 构建系统架构 ## 1. 系统身份 - **定义**:高度自动化且灵活的多架构 Docker 构建系统 - **目的**:支持跨平台(`amd64`、`arm64`)和多发行版(Ubuntu、Alpine)的容器化构建 ## 2. 核心组件 `- docker/Dockerfile.ubuntu` (`base`, `build`): Ubuntu 22.04 多阶段构建镜像 `- docker/Dockerfile.alpine` (`base`, `build`): Alpine Linux 多阶段构建镜像 `- .gitea/workflows/ci.yaml` (`BuildX`, `matrix`): Docker 多架构构建工作流 ## 3. 执行流程(LLM 检索映射) ### 多阶段构建流程 1. **基础阶段(`base`)**: - 安装基础编译依赖 - 准备编译环境 2. **构建阶段(`build`)**: - 克隆源代码 - 执行 `init.sh` 进行项目初始化 - 使用 CMake 编译项目 3. **最终镜像阶段**: - 仅保留编译产物 - 创建最小化镜像 ### 多架构支持关键机制 - 使用 `TARGETARCH`、`BUILDPLATFORM` 动态调整构建 - 交叉编译时降低并行度(`-j2`) - 本地编译使用全部 CPU 核心(`-j$(nproc)`) ## 4. 设计原理 ### 构建优化策略 - 使用 Docker BuildKit 加速构建 - 禁用不必要的构建证明 - 动态调整构建作业并行度 ### 跨平台兼容性 - 通过 `init.sh` 实现统一的项目初始化 - 支持 `amd64`、`arm64` 架构 - 兼容 Ubuntu 和 Alpine 发行版