【已解决】 Jenkins Shell脚本执行遇到npm: command not found
前置条件:
- 服务器安装了docker
- docker中跑Jenkins
- Jenkins工作目录映射在本地目录/xx/data中。已经授权777
- 在Jenkins触发构建的时候得到一下日志
+ echo 当前目录:
当前目录:
+ pwd
/var/jenkins_home/workspace/mp_blog
+ echo 环境:
环境:
+ echo /usr/local/openjdk-8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
/usr/local/openjdk-8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ echo -----------who?-----------
-----------who?-----------
+ whoami
root
+ bash ./test.sh
npm test--------------->
./test.sh: line 3: npm: command not found
Build step 'Execute shell' marked build as failure
Finished: FAILURE
我的构建shell里面的命令
echo "当前目录:"
pwd
echo "环境:"
echo $PATH
echo "-----------who?-----------"
whoami
bash ./test.sh
这个问题你自己应该可以解决呀。
你前面输出了环境变量
你调用了你的test.sh这个脚本。
然后报错npm: command not found
也就是说你的npm没有,也就是说你没有安装node.js
那你确定一下你的脚本运行环境是在哪里?是在docker的容器里呢?还是你本机上?
应该是在你的docker容器里。你想想,如果你的docker容器直接调用你宿主机的命令,那能容器隔离吗?
所以你的容器应该要有node.js才可以不报错。
补充下test.sh文件的内容