接手一个老项目,Docker 镜像 1.2GB,拉一次好几分钟。一步步压到 180MB,过程分享下。
主要做了几件事:
- 切 alpine 基础镜像(省 ~400MB)。
- 多阶段构建,生产镜像不带源码和 devDeps(省 ~500MB)。
- 用
npm prune --production或 pnpm 的--prod。 - 合并 RUN 层,清 apk cache。
最隐蔽的坑是某个 dev 工具被 build 时脚本带进了产物,排查了好久。用 dive 这个工具分析每层体积,强推。
大家镜像瘦身都用啥工具?