Docker环境下npm install缓慢且频繁出现cache miss问题求助
Docker容器挂载外部目录执行npm install速度极慢且频繁出现cache miss
问题现象
本地环境执行npm install完全正常,但在Docker容器(如node:18官方镜像)内,挂载宿主机目录执行npm install时速度极慢(耗时约10秒),几乎每个依赖包后都标注(cache miss)。该问题在node-alpine、node官方镜像及手动安装Node.js的Ubuntu镜像中均存在,且耗时会随依赖包数量增加而变长。
复现步骤
- 创建目录
~/javascript-test并写入指定package.json文件 - 在本地目录执行
npm install后删除node_modules文件夹 - 启动Docker容器并挂载目标目录:
docker run --name node-test --rm -it -v ~/javascript-test:/javascript node:18 - 打开第二个终端执行
docker exec -it node-test sh进入容器,在容器内执行cd javascript && npm install,可观察到2秒后开始出现cache miss提示 - 若在容器内删除
node_modules后再次执行npm install则不会出现cache miss,必须重启容器才能复现问题
可复现操作
提供了可复现问题的Dockerfile及相关代码,执行以下命令即可复现:
sudo docker build -t nodetest . && sudo docker run --name node-test --rm -it -v ~/dockertest/javascript-test:/javascript nodetest
内容的提问来源于stack exchange,提问作者paul23
相关产品推荐
相关产品推荐

