feat(ops): U4 后端镜像瘦身 282MB→107MB (62%降幅)
- 移除 git/docker-cli/docker-cli-buildx (~100MB) 改为懒加载 - PipelineHandler 注入 ToolInstaller, runCheckout/runImageBuild 调 EnsureAvailable - UpgradeTools 自动升级 DB 中 git/docker-cli preinstall→lazy - 仅内置 linux-amd64 agent (~12MB节省), arm64/darwin 通过下载API - kubectl 改用 install-kubectl.sh 下载 stripped 版本 - .dockerignore 排除 backend/kubectl 60MB 二进制 - Dockerfile.embed + backend/Dockerfile 同步更新 - 17/17 集成测试通过
This commit is contained in:
1 parent
8dd5a07b70
commit
c624ca5b4a
11 files changed
+175
-47
No files matched your search
+21
-4
@@ -267,9 +267,26 @@ services/api.ts (1324L)
|
||||
- 提取所有中文文案到 `i18n/zh-CN.json`
|
||||
- 预留 `en-US.json` 扩展
|
||||
|
||||
### U4: 后端镜像优化 [pending]
|
||||
- Backend 277MB → 目标 < 150MB(多阶段构建优化,移除 Agent 编译工具链)
|
||||
- 或使用 distroless 基础镜像
|
||||
### U4: 后端镜像优化 [done]
|
||||
|
||||
**问题**: Backend 镜像 282MB 偏大(含 docker-cli 52MB + docker-cli-buildx 28MB + git 20MB + 3 平台 agent 18MB + 未裁剪 kubectl 60MB)
|
||||
|
||||
**已完成 (2026-06-27)**:
|
||||
- ✅ **移除 git/docker-cli/docker-cli-buildx** (节省 ~100MB) — 改为懒加载(首次流水线使用时通过 `apk add --no-cache` 自动安装)
|
||||
- ✅ **PipelineHandler 注入 ToolInstaller** — `runCheckout` 调 `EnsureAvailable("git")`,`runImageBuild` 调 `EnsureAvailable("docker-cli")`
|
||||
- ✅ **UpgradeTools** 函数 — 自动将 DB 中 git/docker-cli 从 `preinstall` 升级为 `lazy`(带 apk install script)
|
||||
- ✅ **仅内置 linux-amd64 agent** (节省 ~12MB) — arm64/darwin 通过下载 API 提供
|
||||
- ✅ **kubectl 改用 install-kubectl.sh 下载** (~47MB stripped vs 60MB 未裁剪) — 同时从 .dockerignore 排除 backend/kubectl 60MB 二进制
|
||||
- ✅ **Dockerfile.embed + backend/Dockerfile 同步更新**
|
||||
|
||||
**验收标准**:
|
||||
- [x] 镜像从 282MB 降至 **107MB**(目标 < 150MB ✅,降幅 62%)
|
||||
- [x] `go build` 零错误
|
||||
- [x] 17/17 集成测试通过
|
||||
- [x] 前端正常服务(embed 模式)
|
||||
- [x] git/docker 确认不在镜像中(`which git` / `which docker` 返回失败)
|
||||
- [x] kubectl 确认在镜像中(`which kubectl` 返回 `/usr/local/bin/kubectl`)
|
||||
- [x] UpgradeTools 日志确认 git/docker-cli preinstall→lazy 升级成功
|
||||
|
||||
---
|
||||
|
||||
@@ -289,7 +306,7 @@ services/api.ts (1324L)
|
||||
| U1 | 虚拟滚动 | P3 | **done** |
|
||||
| U2 | 统一 DataTable | P3 | **done** |
|
||||
| U3 | 国际化 | P3 | pending |
|
||||
| U4 | 镜像优化 | P3 | pending |
|
||||
| U4 | 镜像优化 | P3 | **done** |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in new issue
Block a user