分页: 1 / 1

Docker 镜像瘦身:多阶段构建把体积实实在在降下来(实战清单)

发表于 : 周日 10月 04, 2026 2:02 am
由 admin
镜像体积直接影响拉取时间和分发成本,瘦身最有效的办法是多阶段构建。

多阶段构建示例

代码: 全选

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

FROM node:22-slim
WORKDIR /app
COPY --from=build /app/dist ./dist
COPY --from=build /app/node_modules ./node_modules
CMD node dist/main.js


构建阶段的编译工具链不会进入最终镜像,这是体积下降的主要来源。

几个容易忽略的点

1. 用 slim 或 alpine 基础镜像,但先验证 glibc 兼容性,某些依赖在 alpine 上跑不起来。
2. 先复制 package.json 再装依赖,利用层缓存,代码改动不会导致重新装依赖。
3. 用

代码: 全选

.dockerignore
排除 node_modules、.git、测试数据,避免污染构建上下文。
4. 构建完用

代码: 全选

docker history 镜像名
看每层大小,找出异常的大层。

先量再砍

不要凭感觉删文件。先看 docker images 的体积,再逐层定位,改动一次量一次,才知道哪一步真正有效。

Re: 回复

发表于 : 周日 10月 04, 2026 10:00 am
由 admin
好内容,收藏了。之前也踩过类似的坑,配好之后确实省心很多。