📦 基础镜像
⚙️ 构建配置
🔧 高级选项
多阶段构建
优化镜像
健康检查
非root用户
Dockerfile
# 构建阶段
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build 2>/dev/null || true

# 生产阶段
FROM node:20-alpine
WORKDIR /app

# 创建非root用户
RUN addgroup -g 1001 -S appgroup && adduser -u 1001 -S appuser -G appgroup

# 复制依赖文件
COPY package*.json ./

# 安装依赖
RUN npm ci --only=production && npm cache clean --force

# 复制应用代码
COPY . .

# 暴露端口
EXPOSE 3000

# 切换到非root用户
USER appuser

# 启动命令
CMD ["npm", "start"]