Skip to content

Docker 构建过程中 PNPM 空间不足问题

问题现象

ERR_PNPM_ENOSPC  ENOSPC: no space left on device

根本原因

PNPM 使用全局 store 机制,构建时需要双倍空间:

  • Store 存储:3GB
  • node_modules:3GB
  • 总需求:6GB+

解决方案

方案1:切换到 NPM

dockerfile
# 使用 npm 替代 pnpm
RUN npm install --only=production

方案2:多阶段构建

dockerfile
# 构建阶段
FROM node:20-alpine AS builder
RUN pnpm install && pnpm build

# 生产阶段
FROM node:20-alpine AS production
RUN npm ci --only=production
COPY --from=builder /app/dist ./dist

经验总结

  • NPM 直接安装,空间占用更少
  • PNPM 适合开发环境,NPM 适合生产部署
  • 多阶段构建可以兼顾两者优势

Released under the MIT License.