Docker 镜像瘦身与构建加速技巧¶
镜像瘦身的核心不是“删文件”,而是“让不需要的东西不要进入最终层”。
1. 多阶段构建¶
FROM golang:1.22 AS build
WORKDIR /src
COPY . .
RUN CGO_ENABLED=0 go build -o app ./cmd/app
FROM gcr.io/distroless/base-debian12
COPY --from=build /src/app /app
ENTRYPOINT ["/app"]
2. 让缓存更稳定¶
- 先 COPY 依赖清单,再下载依赖,最后 COPY 源码
- 把变化频繁的层放在后面
3. 清理与最小运行时¶
apk add --no-cache/apt-get clean避免残留- 运行阶段用 distroless 或 alpine(注意 glibc 兼容性)