docker build Sending build context to Docker daemon构建缓慢的

背景

最近在构建一个前端镜像的时候,docker build特别慢,需要10分钟,而前端为nginx静态文件,总共也才10MB。
Sending build context to Docker daemon 这部时间特别长,文件传输特别大。

image.png

原因

观察构建过程中的记录, 在Sending build context to Docker daemon 步骤发送了大量的文件,且很缓慢。

后来看了下docker build构建机制,

docker在构建过程中,会将当前文件夹下的文件 发送给docker 的deamon

而前端文件往往在研发和构建过程中会下载大量的node_modules,下面下有大量的子文件夹及内容。 这些大量的小文件都需要传到到构建环境。 构建会特别缓慢。


image.png

node_modules 如果是前端问题万恶之源。

解决方案 --

  1. 由于前端项目,dockerfile一般都放在git仓库根目录, 比较好的方式就是构建过程中不传输这些node_modules目录。 采用git自身的方案, 添加.dockerignore 文件。
src
node_modules 
  1. 也可以在构建过程中,找个空文件夹中,只存放需要进行参与构建镜像的文件。

验证

优化后 文件build context 传输内容大大减小。


果然在CICD中构建时间从5分钟 ,优化到30秒。


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容