安全测试-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.分析结果