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 适合生产部署
- 多阶段构建可以兼顾两者优势