docker build - 具有多个嵌套微包的层缓存

时间:2018-03-13 15:03:06

标签: node.js docker npm microservices

我们有一个基本的docker镜像,它由多个嵌套包组成,每个包都有自己的package.json依赖项。

考虑下一个目录结构

service-dir/
|––Dockerfile
|
|––src/
|  |
|  |––package1/
|  |  | package.json
|  |
|  |––package2/
|  |  | package.json
|  |  
|  |––packageN/

对于提高docker速度的常规包,我们只缓存package.jsonpackage-lock.json,这样如果它的包依赖关系未被更改npm install将被跳过。

 # cache package layer to skip npm install

 ADD package.json package-lock.json /src/
 RUN npm install --prefix /src

但是在给定结构的情况下,我们有一个包含40多个小子包的大包。即使我们手动顺序缓存package.json,它也会炸毁Dockerfile并导致错误,指出有太多的Docker层。

之前有其他人遇到过同样的问题吗?您对解决此问题的建议是什么?

谢谢。

0 个答案:

没有答案