💡
原文英文,约800词,阅读约需3分钟。
📝
内容提要
最近准备将部署在Cloudfalre、Vercel和Netlify上的项目迁移到自己的VPS上通过Docker运行。研究了一下Node.js项目Docker镜像最小化打包方案,将镜像大小从1.06GB缩小到了135MB。主要思路是使用Alpine Linux镜像、多层构建和将node_modules内联进JavaScript文件。这样可以减小镜像大小并提高构建速度。
🎯
关键要点
- 准备将部署在Cloudflare、Vercel和Netlify上的项目迁移到自己的VPS上通过Docker运行。
- 研究Node.js项目Docker镜像最小化打包方案,将镜像大小从1.06GB缩小到135MB。
- 使用Alpine Linux镜像、多层构建和将node_modules内联进JavaScript文件来减小镜像大小并提高构建速度。
- 第0版使用node:lts-alpine基础镜像,打包体积为1.06GB。
- 第1版通过多层构建方案将镜像大小缩小到306MB,但需要明确指定生产依赖。
- 第2版将node_modules内联进JavaScript文件,最终镜像大小缩小到135MB。
- 最终对比显示,体积从1.06GB降低到135MB,构建时间从113.8秒降低到24.9秒。
- 示例项目是开源的,可以在GitHub查看。
➡️