【基于Docker安装的Jenkins在pipeline中不识别npm命令】

基于Docker安装的Jenkins在pipeline中不识别npm命令

问题

基于Docker安装的Jenkins,然后创建了一个基于pipeline的Job构建vue项目

构建过程报错:

[Pipeline] sh
 npm install
/var/jenkins_home/workspace/xxx-web@tmp/durable-bad60f53/script.sh: 1: npm: not found

Pipeline脚本:

node {
	stage('安装') {
        sh "npm install"
    }
}

解决思路

docker exec -it jenkins bash 进入docker容器内安装npm并配置好环境变量PATH,执行/etc/profile后执行npm -v没有问题,Jenkins再次构建,还是不行,那问题出在哪里了?原来是对于node或maven的路径的环境变量是放在/etc/profile中的, 而/etc/profile只有在用户登录的时候才会被load,Jenkins在运行命令时,使用的是Non-login的方式,所以通过配置软链接的方式去解决。

最终解决方案

step1. docker exec -it -u 0 jenkins bash以root权限进入Jenkins容器;
step2. 配置npm执行命令软链接

ln -sv /usr/local/node-v14.15.4/bin/npm /usr/local/bin/npm
ln -sv /usr/local/node-v14.15.4/bin/node /usr/local/bin/node
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值