Vite SSR 项目 Docker 镜像最小化打包方案

Vite SSR 项目 Docker 镜像最小化打包方案

💡 原文中文,约6200字,阅读约需15分钟。
📝

内容提要

最近将项目从 Cloudflare 迁移到 VPS,研究了 Docker 镜像的最小化打包方案。通过使用 Alpine Linux 镜像和内联 node_modules,成功将镜像大小从 1.06GB 降低到 135MB,构建时间缩短至 24.9秒。

🎯

关键要点

  • 将项目从 Cloudflare 迁移到 VPS,通过 Docker 运行。
  • 最初的 Docker 镜像大小为 1.06GB,经过优化后缩小至 135MB。
  • 使用 Alpine Linux 镜像和内联 node_modules 作为主要优化方案。
  • 第一版方案通过多层构建将镜像大小缩小到 306MB,但需要明确指定生产依赖。
  • 第二版方案将 node_modules 内联进 JavaScript 文件,最终只复制 JavaScript 文件到运行环境。
  • 构建时间从 113.8秒缩短至 24.9秒。

延伸问答

如何将 Docker 镜像的大小从 1.06GB 降低到 135MB?

通过使用 Alpine Linux 镜像和内联 node_modules,成功将镜像大小降低到 135MB。

Vite SSR 项目在 Docker 中的构建时间缩短了多少?

构建时间从 113.8秒缩短至 24.9秒。

第一版 Docker 镜像优化方案的缺点是什么?

第一版方案需要明确指定生产依赖,否则运行时会报错。

第二版 Docker 镜像优化方案是如何实现的?

第二版方案将 node_modules 内联进 JavaScript 文件,只复制最终的 dist 产物。

在 Docker 中使用 Vite SSR 的主要优势是什么?

主要优势是可以通过内联 node_modules 来显著减少镜像大小。

迁移项目到 VPS 的原因是什么?

迁移是为了将项目从 Cloudflare 转移到自己的 VPS 进行 Docker 运行。

➡️

继续阅读