解决报错由于找不到node而没有扫描结果的问题。
在构建的日志中,会有如下报错:java.io.IOException: Cannot run program “node”: error=2, No such file or directory
由于这个Jenkins的镜像是基于 alpine 版本制作的,没有node的环境,所以会报错。
在sonarqube官方文档中关于typescript、javascript中发现,sonarscanner 在扫描 typescript 和 javascript 时需要node环境,对于typescript来说,需要安装 typescript
解决办法:安装node & npm
- 查看当前容器
docker ps
- 进入容器:
docker exec -it 17d6c5f53814 bash
- 安装node
apk add nodejs
bash-4.4# apk add nodejs
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
(1/4) Installing c-ares (1.15.0-r0)
(2/4) Installing http-parser (2.8.1-r0)
(3/4) Installing libuv (1.23.2-r0)
(4/4) Installing nodejs (10.14.2-r0)
Executing busybox-1.29.3-r10.trigger
OK: 373 MiB in 115 packages
- 安装npm
apk add npm
bash-4.4# apk add npm
(1/1) Installing npm (10.14.2-r0)
Executing busybox-1.29.3-r10.trigger
OK: 397 MiB in 116 packages
- 验证安装
- 验证node
node -v
- 验证npm
npm -v
- 重新构建