ITPub博客

首页 > 云计算 > > 如何加速 Docker Build 构建过程

如何加速 Docker Build 构建过程

作者:浪花小雨滴 时间:2020-05-08 11:59:04 0 删除 编辑

Dockerfile

docker 已经成为现代开发的基础技术,
而在 docker 开发流中,
Dockerfile 是最基础的文件。

一个包括了系统配置、依赖安装、业务代码的 Dockerfile 可能长这样子:

开发者小周发现:
每次改完代码以后重新 docker build 都非常慢。

改写文件

最简单的加速是改写 Dockerfile,
因为 Dockerfile 中的一些命令 (ADD/COPY/RUN) 会产生新的 layer,
而 Docker 会自动跳过已经构建好的 layer。
所以一般优化的原则基于以下几点:

  • 变动越小的命令,越靠前,增加 cache 使用率。
  • 合并目的相同的命令,减少 layer 层数。
  • 使用国内源,或者内网服务加速构建。
  • 少装些东西,不是代码依赖的就尽量别装了…
  • 记得加上合适的注释,以便日后的维护。

改写以后的 Dockerfile 可能长这样:

改过以后的版本,
开发者小周发现,
每次本地改完代码 build 调试都飞快,
他很满意。

但是用公司的分布式 gitlab runner 构建以后,
他发现:
有时镜像没用到 cache,又跑了一遍漫长的构建过程。

分布式构建

在 codebase 足够大的情况下,
CI/CD 一般都是分布式多台机器的,
默认的 docker build 只会从本地寻找 cache layer,
无法应对如此复杂的场面。

简单的办法是使用 docker build --cache-from 指定镜像,
我们会在 ci 脚本中这么写:

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3142075/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    39991