Docker 镜像瘦身实践

Admin
207阅读
0评论
0点赞

多阶段构建 + 层合并,把镜像从 1.2G 压到 90M。

从 1.2G 到 90M

一、多阶段构建

编译产物之外的东西一律不进最终镜像。

FROM node:20 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

二、选对基础镜像

基础镜像 大小 备注
ubuntu 78M 工具齐全
debian-slim 30M 平衡之选
alpine 7M musl libc,个别扩展不兼容
distroless 2M 无 shell,调试困难

三、合并 RUN 并清理

每条 RUN 都是一层,删除操作放在下一层是删不掉体积的。

RUN apt-get update \
 && apt-get install -y --no-install-recommends curl \
 && rm -rf /var/lib/apt/lists/*

用 docker history 逐层看体积,比凭感觉猜快得多。

上一篇暂无更多文章
下一篇Nginx 反向代理的常见坑
评论0

暂无评论,期待您的发言...

发表评论