git - 使用 Docker Container Sonar Scanner 的 Jenkins Pipeline 中的 SonarQube 分析 Git 存储库会引发错误 - 无法获取 uid/gid
问题描述
我正在尝试在使用 docker 容器中的 Sonar Scanner 时分析 Jenkins 管道中的 git 存储库。我的詹金斯管道代码如下所示:
pipeline {
agent {
docker {
image 'node:lts-alpine'
args '-u root:root'
}
}
stages {
stage('build && SonarQube analysis') {
steps {
sh 'npm install -g sonarqube-scanner'
withSonarQubeEnv('sonar.tools.devops.***') {
sh 'sonar-scanner -Dsonar.projectKey=**** -Dsonar.sources=./src'
}
}
}
stage("Quality Gate") {
steps {
timeout(time: 1, unit: 'HOURS') {
// Parameter indicates whether to set pipeline to UNSTABLE if Quality Gate fails
// true = set pipeline to UNSTABLE, false = don't
// Requires SonarScanner for Jenkins 2.7+
waitForQualityGate abortPipeline: true
}
}
}
}
}
部分 sh 'npm install -g sonarqube-scanner' 分析失败
出现此错误:
+ npm install -g sonarqube-scanner
Error: could not get uid/gid
[ 'nobody', 0 ]
at /usr/local/lib/node_modules/npm/node_modules/uid-number/uid-number.js:37:16
at ChildProcess.exithandler (child_process.js:301:5)
at ChildProcess.emit (events.js:198:13)
at maybeClose (internal/child_process.js:982:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
TypeError: Cannot read property 'loaded' of undefined
at exit (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:98:27)
at errorHandler (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:216:3)
at /usr/local/lib/node_modules/npm/bin/npm-cli.js:77:20
at cb (/usr/local/lib/node_modules/npm/lib/npm.js:225:22)
at /usr/local/lib/node_modules/npm/lib/npm.js:263:24
at /usr/local/lib/node_modules/npm/lib/config/core.js:83:7
at Array.forEach (<anonymous>)
at /usr/local/lib/node_modules/npm/lib/config/core.js:82:13
at f (/usr/local/lib/node_modules/npm/node_modules/once/once.js:25:25)
at afterExtras (/usr/local/lib/node_modules/npm/lib/config/core.js:173:20)
/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:98
var doExit = npm.config.loaded ? npm.config.get('_exit') : true
^
TypeError: Cannot read property 'loaded' of undefined
at exit (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:98:27)
at process.errorHandler (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:216:3)
at process.emit (events.js:198:13)
at process._fatalException (internal/bootstrap/node.js:496:27)
我正在运行 nodejs,因为我需要在 SonarQube 中分析 typescript 项目。
解决方案
推荐阅读
- amazon-web-services - AWS ElasticBeanstalk + cloudflare
- linux - 使用 ksh 查找命令的循环异常行为
- r - 按个人分组
- akka-cluster - 是否可以运行一个只有一个节点的 Akka 集群,同时使用 Akka Cluster Bootstrap 和 Config 中的 Discovery?
- sql - Oracle 扩展属性可用吗?
- html - 如何对齐面板右下角的按钮
- javascript - 连续旋转
- r - 给定工作日的子集日期,如果缺少工作日,则选择下一个日期
- windows - 在 FOR /F 批处理中测试空令牌
- php - 一种克服距离矩阵 API 带来的元素限制的算法