这篇 Prompt 能帮你做什么
目标:让 AI 直接产出一个可运行/可部署的在线工具,用来做 Docker 镜像层(layer)体积分析、增量文件定位、并给出可落地的瘦身建议与对比报告。适合研发、运维、SRE、安全合规团队在上线前做镜像体检,也适合在 CI 里做自动化卡点。
交付物与覆盖场景(硬要求)
交付物必须包含:完整项目源码、清晰文件树、可复制的一键运行命令、部署说明、测试用例或 QA checklist。
覆盖场景:上传镜像 tar(docker save)或输入 Dockerfile/构建日志;可视化每层体积与贡献文件;识别重复文件与缓存污染;生成瘦身建议(例如多阶段构建、合并 RUN、清理包管理缓存、替换基础镜像、依赖裁剪);导出报告(HTML/JSON)。
Prompt 1:生成在线工具(推荐全栈一体)
你是一名资深全栈工程师与 DevOps 工具作者。请生成一个可运行的在线工具项目:
- 功能:Docker 镜像层分析与瘦身建议工作台。
- 输入:1) 上传镜像 tar(docker save 导出),2) 可选上传 Dockerfile(用于给出改写建议),3) 可选上传构建日志(用于定位缓存/层污染)。
- 输出:
1) 层列表:每层 size、diffId、createdBy、增量文件 TopN;
2) 文件归因:某文件出现在哪一层、累计体积、是否重复;
3) 建议清单:按收益排序(预计可减少多少 MB/比例)+ 可执行的 Dockerfile patch 示例;
4) 报告导出:HTML + JSON;
5) 安全:限制上传大小、超时、只做离线解析不执行镜像内命令。
技术要求:
- 后端:Node.js + Type (Express 或 Fastify 均可),负责解析 tar、读取 manifest.json、config.json、layer.tar,统计体积与文件列表。
- 前端:React + Vite + Type ,做数据表格与筛选、报告预览与导出。
- 本地运行:提供 pnpm 或 npm 脚本,一条命令启动前后端(或前端代理后端)。
- 部署:给出 Docker Compose 与生产部署建议(反向代理、静态资源、上传目录、环境变量)。
必须输出:
1) 项目文件树;
2) 每个关键文件的完整代码(不要省略,用占位符也不行);
3) README:安装/运行/构建/部署;
4) API 设计(至少:/api/analyze 上传、/api/report/:id 获取结果、/api/export 导出);
5) 测试与 QA:
- 单元测试:对 tar 解析与统计逻辑;
- E2E 或手工 QA checklist:包含至少 15 条可验证项。
额外要求:
- 解析要兼容 OCI 与 Docker v2 schema(尽量兼容常见导出);
- UI 要提供:按层筛选、按文件路径前缀筛选、按体积排序、复制建议 patch;
- 不要生成任何图片/插画/渲染图相关功能。
Prompt 2:只生成后端解析库(便于复用到 CI)
请用 Type 编写一个可发布的 npm 包:docker-layer-inspector。
- 输入:镜像 tar 路径或 ReadableStream;
- 输出:标准化 JSON(层信息、文件归因、重复文件、可疑大文件、建议项)。
- 提供 CLI:docker-layer-inspector analyze --out report.json --html report.html。
- 提供规则系统:支持自定义阈值与规则(例如单层 >200MB、重复文件占比 >10%)。
必须包含:项目文件树、全部源码、README、示例输入/输出、单元测试(覆盖率目标 80% 以上)。
同时给出一个 GitHub Actions 示例工作流:在 PR 时自动分析并把摘要贴到 job summary。
Prompt 3:专门生成 Dockerfile 瘦身改写器(规则 + 建议)
请实现一个在线工具:Dockerfile Slimmer。
- 输入:Dockerfile 文本;
- 输出:
1) 改写后的 Dockerfile(保留注释与语义);
2) 变更说明(逐条解释为什么这样改、收益与风险);
3) 可选:多阶段构建模板建议(适配 Node/Python/Go 常见项目)。
- 规则:合并 RUN、清理 apt/yum/apk 缓存、固定版本、减少层污染、最小化复制范围、使用 .dockerignore 建议。
- 输出必须包含:项目源码、文件树、运行命令、部署说明、QA checklist(至少 12 条)。
注意:不要引导生成图片/海报/渲染图;工具只处理文本与报告。
使用建议
如果你要快速上线:先用 Prompt 1 生成一体化项目;如果你要集成到流水线:用 Prompt 2 产出可复用解析库与 CLI;如果你主要想改 Dockerfile:用 Prompt 3 直接做改写器。建议先准备 1-2 个真实镜像 tar(小/大各一个)来验证分析结果与建议质量。