镜像几个 G,用多阶段构建和 .dockerignore 瘦身

体积大头一般是构建工具链和缓存被留在了运行镜像里。

用多阶段构建:前一阶段装依赖、跑构建,后一阶段只 COPY –from=builder 拿产物,运行镜像换成 alpine 或 slim 这类小基础镜像。

再检查 COPY 有没有把 node_modules、.git、日志、测试数据一起塞进去,依赖清单文件单独一条 COPY 能吃到层缓存。

定位用 docker history 逐层看,或拿 dive 看哪层最厚。

FROM node:22 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html

# .dockerignore 至少包含
# node_modules
# .git
# dist
# *.log
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容