Docker 容器化你的 Node.js 应用
2026年7月3日5 分钟阅读
多阶段构建
多阶段构建可以显著减小最终镜像体积:
# 构建阶段
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
# 运行阶段
FROM node:20-alpine AS runner
WORKDIR /app
COPY --from=builder /app/.next ./.next
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/package.json ./
EXPOSE 3000
CMD ["npm", "start"]
关键实践
- 使用
.dockerignore排除node_modules; - 固定基础镜像版本,保证可复现;
- 生产环境用
npm ci而非npm install。
评论 (0)
- 还没有评论,来做第一个评论的人吧。