跳转至

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 兼容性)