Docker 镜像瘦身实践
多阶段构建 + 层合并,把镜像从 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





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