有一个前端项目,在我删除了node_modules之后,构建非常慢,半个小时都没执行完
一直以为是jenkins问题,重启了也没用,一直卡在docker build步骤,后来干脆就挂着执行,执行完查看日志
后来看到 Sending build context to Docker daemon 932 MB
好家伙,一个前端项目项目最多20M,怎么会这么大,查找一番才知道原因:
docker client会默认把Dockerfile同级所有文件发给docker Deamon中,因为目录下有node_modules文件,有几百兆
我这个原因显而易见,Dockerfile在目录最外层,和node_modules同级,docker把node_modules也加进去了。。
解决办法有两种:
1.使用.dockerignore文件,设置黑名单,该文件包含的目录不会被发送到Docker daemon中
2.将Dockerfile迁移后其他目录中执行。
3.将不需要的文件删除
添加.dockerignore文件,填入 node_modules之后恢复正常
那之前为啥没发现呢,可能是docker有缓存吧,之前加过了,所以后面没再加