安全测试-docker搭建sonar完成代码质量检测

1.SonarQube简介

1.简介

Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测,是代码审查利器;可以帮助我们分析bug,漏洞,异味,代码覆盖率和重复代码问题

2.组成

3.过程

1.开发人员在他们的ide中使用SonarLint运行分析本地代码。
2.开发人员将他们的代码提交到代码管理平台中(SVN,GIT等)
3.持续集成工具自动触发构建,调用SonarScanner对项目代码进行扫描分析
4.分析报告发送到SonarQube Server中进行加工
5.SonarQube Server 加工并且保存分析报告到SonarQube Database中,通过UI显示分析报告

2.docker安装SonarQube

1.安装数据库-postgres

获取 postgresql 的镜像
$ docker pull postgres
启动 postgresql
$ docker run --name db -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d postgres:12

#说明:
--name db 是搭建的postgres数据库docker 容器名称
-e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar 是数据库账号和密码
-d postgres 12 是postgres镜像的版本

2.安装SonarQube

获取 SonarQube 的镜像
$ docker pull sonarqube
启动 SonarQube
docker run --name sq --link db -e SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -p 9000:9000 -d sonarqube
ps:SonarQube的用户名密码一般使用sonar启动,否则会报错

#说明:
--name sq 是搭建的SonarQube数据库docker 容器名称sq
--link db 是连接上面postgres容器
-e SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar 连接的db的端口号
-e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar SonarQube的用户名和密码:sonar/sonar
-p 9000:9000 第一个9000是对外访问端口,第二是是对内访问端口
-d sonarqube 是最新版本的SonarQube 镜像

3.检验成功

$ docker ps
postgres和sonarqube都启动说明搭建成功

3.SonarQube平台

1.打开http://localhost:9000/about,点击login进行登录,用户名密码:admin/admin



2.利用sonar 的插件体系,直接汉化
sonar并选择Administration中,选择MarketPlace,搜索Chinese Pack,点击安装,安装完成后,重启即可;重启命令:docker restart sq

4.SonarScanner客户端

1.下载安装sonarscanner

下载地址:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

2.配置环境变量

$ sonar-scanner -h
验证生效

3.服务端开启认证

默认是不开启的,可以手动开启;开启令牌后就只能有令牌的进行扫描

ps:至此,不是maven的项目,直接就可以用sonarscanner扫描了,maven的项目,接下来安装maven

5.maven项目

1.下载安装maven

下载地址:http://maven.apache.org/download.cgi

2.配置环境变量

$ mvn -version
验证生效

3.修改maven中的conf-settings配置文件

      <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>

    <profile>
        <id>sonar</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <!-- Optional URL to server. Default value is http://localhost:9000 -->
            <sonar.host.url>
              http://127.0.0.1:9000
            </sonar.host.url>
        </properties>
    </profile>

6.扫描代码

1.创建项目




2.执行扫描

终端进入项目根目录,执行上面生成的命令

3.分析结果


7.集成到jenkins

参考文档:https://www.kancloud.cn/guanfuchang/sonar/909453

posted @ 2020-05-13 20:03  张珊33  阅读(1228)  评论(1编辑  收藏  举报