我们有一个基本的docker镜像,它由多个嵌套包组成,每个包都有自己的package.json
依赖项。
考虑下一个目录结构
service-dir/
|––Dockerfile
|
|––src/
| |
| |––package1/
| | | package.json
| |
| |––package2/
| | | package.json
| |
| |––packageN/
对于提高docker速度的常规包,我们只缓存package.json
和package-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层。
之前有其他人遇到过同样的问题吗?您对解决此问题的建议是什么?
谢谢。