安全測試-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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM