【发布时间】:2018-10-09 09:25:25
【问题描述】:
我正在尝试通过 Jenkins 管道构建我的 TypeScript 应用程序。为了管理构建、测试和代码质量扫描,我让 Jenkins 使用基于 node:7-alpine 的 Docker 代理。
我的容器的 Dockerfile 是:
FROM node:7-alpine
RUN npm install -g gulp sonarqube-scanner
我的 Jenkins 文件如下所示:
pipeline {
agent {
dockerfile { dir 'build-image' }
}
stages {
stage('Build') {
steps {
sh 'npm install'
sh 'npm run build'
}
}
stage("SonarQube Analysis") {
steps{
sh 'gulp sonar'
}
}
在声纳运行之前一切似乎都正常。当它运行时出现错误:
[-47-get-web-client-building-LUNCQQ5SQOUXXUXPT5TJDVBCFON3OPD2COBIW6WPU3J3ZRFFTYJQ] 运行shell脚本
- gulp 声纳
[03:00:14] 使用 gulpfile /var/jenkins_home/workspace/-47-get-web-client-building-LUNCQQ5SQOUXXUXPT5TJDVBCFON3OPD2COBIW6WPU3J3ZRFFTYJQ/gulpfile.js
[03:00:14] 开始“声纳”...
[03:00:14] 开始 SonarQube 分析...
[03:00:14] 检查可执行文件是否存在: /home/node/.sonar/native-sonar-scanner/sonar-scanner-3.0.3.778-linux/bin/sonar-scanner
[03:00:14] 找不到可执行文件 '/home/node/.sonar/native-sonar-scanner'.
[03:00:14] 继续下载平台二进制文件 SonarQube 扫描仪...
[03:00:14] 创建 /home/node/.sonar/native-sonar-scanner
[03:00:14] 下载自 https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.0.3.778-linux.zip
[03:00:14](可执行文件将保存在缓存文件夹中: /home/node/.sonar/native-sonar-scanner)
/home/node/.sonar/native-sonar-scanner/sonar-scanner-3.0.3.778-linux/bin/sonar-scanner: 执行:第 73 行: /home/node/.sonar/native-sonar-scanner/sonar-scanner-3.0.3.778-linux/jre/bin/java: 没找到
child_process.js:504
throw err; ^
我只使用了 node:7-alpine 容器,我得到了同样的错误。奇怪的是容器有 java 可执行文件,但似乎无法识别:
【问题讨论】:
标签: docker sonarqube-scan