在jenkinsfile的containerTemplate中运行声纳

时间:2019-11-28 13:28:22

标签: sonarqube jenkins-pipeline sonarqube-scan

我正在尝试使用ContainerTemplate构建声纳-我正在使用this图片(newtmitch /声纳扫描仪)。

当我运行docker run -ti -v $(pwd):/usr/src newtmitch/sonar-scanner时,它连接到我的本地主机声纳(在sonar-project.properties中定义),并且我得到了声纳测试的日志。

但是当我改用podtemplate时,它没有任何输出(仅“运行”)。为什么容器模板不运行声纳扫描仪?这是我的代码的相关部分:

podTemplate(label: 'jenkins-pipeline', containers: [
    containerTemplate(name: 'jnlp', image: 'jenkinsci/jnlp-slave:2.62', args: '${computer.jnlpmac} ${computer.name}', workingDir: '/home/jenkins', resourceRequestCpu: '500m', resourceLimitCpu: '500m', resourceRequestMemory: '1024Mi', resourceLimitMemory: '1024Mi'),
    containerTemplate(name: 'docker', image: 'docker:1.12.6', command: 'cat', ttyEnabled: true),
    containerTemplate(name: 'maven', image: 'maven:3.5.0-jdk-8', command: 'cat', ttyEnabled: true),
    containerTemplate(name: 'sonar-scanner-newtmitch', image: 'newtmitch/sonar-scanner', command: 'cat', ttyEnabled: true),
    containerTemplate(name: 'kubectl', image: 'lachlanevenson/k8s-kubectl:v1.8.3', command: 'cat', ttyEnabled: true)
],
volumes:[
    hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock'),
]){

  node ('jenkins-pipeline') {
     container("maven"){
       checkout scm
     }
     container("sonar-scanner-newtmitch"){
       stage("run sonar scanner"){
         sh "echo running"
       }
     }
}

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题,但是忘记了这个问题。我看到容器模板覆盖了声纳图像的ENTRYPOINT。所以我必须添加阶段:

stage("scan"){
  sh "sonar-scanner"
}