首页/云/Docker 容器速查/Node 多阶段构建示例
镜像与构建107 条

Node 多阶段构建示例

Node 项目常见两段式:构建阶段装全量依赖编译前端,运行阶段只装生产依赖 + 拷贝构建产物。

Docker 容器速查云更新于 2026-10-12

示例

示例
FROM node:20-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:20-alpine AS runtime
WORKDIR /app
ENV NODE_ENV=production
COPY package*.json ./
RUN npm ci --omit=dev && npm cache clean --force
COPY --from=build /app/dist ./dist
USER node
CMD ["node", "dist/server.js"]
node 官方镜像自带 node 用户(UID 1000),运行阶段直接 USER node 即可。

易错点

  • 先复制 package*.json 再 npm ci:直接 COPY . . 会让改一行代码就全量重装依赖
  • 两段式下 package-lock.json 必须在两段都复制,否则生产依赖版本可能漂移

数据来源与参考

  • Docker 官方文档:Multi-stage builds(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌