多阶段构建

Docker的多阶段构建(Multi-stage Build)主要有以下几个作用:

  1. 减少镜像体积:通过在构建过程中使用多个阶段,可以只将最终需要的文件复制到最终镜像中,从而大大减少镜像的体积。
  2. 提高构建效率:可以在不同阶段使用不同的基础镜像,利用更轻量级的镜像进行构建,提高构建速度。 增强安全性:通过多阶段构建,可以避免将不必要的构建工具和依赖打包到最终镜像中,减少安全风险。 以下是一个简单的多阶段构建示例
# 第一阶段:构建应用
FROM golang:1.16 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp

# 第二阶段:创建运行时镜像
FROM alpine:latest
WORKDIR /root/
COPY --from=builder /app/myapp .
CMD ["./myapp"]