多阶段构建(Multistage Build)是 Docker 中的一个高级特性,它允许你在构建镜像时,将构建过程分解为多个阶段。这样可以有效地减小最终镜像的大小,并优化构建过程。

优势

  • 减小镜像体积:通过将构建过程中的中间文件和工具移除,可以显著减小最终镜像的体积。
  • 提高构建效率:可以复用构建过程中的中间阶段,减少重复工作。
  • 隔离构建环境:每个阶段都可以使用不同的构建环境,从而避免不同构建阶段之间的冲突。

示例

以下是一个简单的多阶段构建示例:

# 阶段1:构建阶段
FROM python:3.8 AS builder
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt

# 阶段2:构建镜像
FROM python:3.8-slim
COPY --from=builder /app .

在这个例子中,我们首先使用 python:3.8 镜像作为构建阶段,安装必要的依赖。然后,我们创建一个新的 python:3.8-slim 镜像,将构建好的应用程序复制到其中。

扩展阅读

更多关于 Dockerfile 的信息,请参考我们的 Dockerfile 教程

Dockerfile_Multistage