JenkinsX构建前端解决npm依赖包慢的问题 |
您所在的位置:网站首页 › docker build慢 › JenkinsX构建前端解决npm依赖包慢的问题 |
背景
使用的是基于k8s环境的JenkinsX,JenkinsX是Jenkins在云环境的版本,支持k8s构建环境,就是通过启用各类构建工具的pod,比如node的pod,maven的pod。 遇到的问题由于使用不熟练,遇到一些问题,总结下来供以后参考: npm构建很慢 在k8s中由于容器使用过多节点资源,比如存储,导致节点驱逐容器,然后构建失败。这里比如k8s节点报错:Attemptting to reclaim ephemeral-storage主要解决npm构建慢的问题 npm构建慢的解决方案经过多次实践,解决方案如下: 第一种方案:简单直接,使用淘宝的npm镜像。这样其实速度能快很多 cd test npm config set registry http://registry.npm.taobao.org npm get registry npm i --legacy-peer-deps npm run build这种方案有个问题:如果依赖包较多,导致容器耗费大量宿主机资源,会被宿主机驱逐然后导致构建失败,所以还要结合以下第二种方案,挂载pv。 第二种方案:缓存npm包,挂载k8s的pv到pod 1.1 把pv挂载node环境的pod容器的/node_modules下 1.2 进入项目目录,这里的项目目录为test,建立软连接: cd test ln -s /node_modules ./node_modules npm i --legacy-peer-deps npm run build这里使用npm i --legacy-peer-deps,若直接使用npm install会由于node版本原因报错 综合两种方案一起使用,最后的构建脚本如下: cd test ln -s /node_modules ./node_modules npm config set registry http://registry.npm.taobao.org npm get registry npm i --legacy-peer-deps npm run build其实这种方案也解决了容器耗费节点临时资源太多被驱逐的问题,因为使用的存储卷。 仅做记录,供以后参考。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |