如何提高40%的Docker构建时间

1. 背景

在产品开发中构建docker镜像,随着时间的推移,会变得越来越大,构建时间也越来越长。我的目标是构建时间不超过 5 分钟。

2. 遵循Dockerfile的最佳实践

我们首先确保Dockerfile文件遵循Docker官方的最佳实践,具体做法有:

  • 尽量使用官方的基础镜像,Docker推荐使用Alpine的镜像。
  • 使用多阶段构建
  • 使用.dockerignore去除无关的文件
  • 创建临时容器
  • 不要安装不用的包
  • 解耦应用程序
  • 利用缓存构建镜像
  • 拆分复杂的RUN命令为多行,并用 / 分割

更多详细的最佳实践可以参考官方文档:https://docs.docker.com/develop/develop-images/instructions/

我们在此基础上做了2个修改,极大的缩短了构建时间。

首先介绍下两个工具:Buildkit 与 Buildx

3. Buildkit 与 Buildx

3.1 Buildit

Buildit是一个改进过的用来取代传统的Docker构建器的工具,从Docker 23.0开始成为默认构建器。它包含以下一些功能:

  • 改进的缓存能力
  • 并行构建不同的层
  • 基础镜像的懒加载

使用buildit的时候,会发现比docker build的输出更简洁。

Docker 23.0前的版本要使用bui

你可能感兴趣的:(docker,容器,云原生)