在 Windows 用 Docker 快速跑起 SonarQube社群版10.6_針對.net framework專案
之前做過直接在本地架設Sonarqube的掃描儀錶板環境
時隔3年補充筆記透過Docker並用較新版本的來示範如何用Docker來建置原始碼掃描環境
這邊假設你電腦Windows 已安裝 Docker Desktop for Windows,並啟用 WSL2 後端
(Docker Desktop → Settings → General → Use the WSL 2 based engine)
Step1.在自行指定目錄下 E:\Docker\Sonarqube,準備好一個yaml。
version: "3" services: sonarqube: image: sonarqube:10.6.0-community depends_on: - db environment: SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar SONAR_JDBC_USERNAME: sonar SONAR_JDBC_PASSWORD: sonar SONAR_SEARCH_JAVAADDITIONALOPTS: "-Dnode.store.allow_mmap=false,-Ddiscovery.type=single-node" volumes: - sonarqube_data:/opt/sonarqube/data - sonarqube_extensions:/opt/sonarqube/extensions - sonarqube_logs:/opt/sonarqube/logs ports: - "9000:9000" db: image: postgres:14-alpine environment: POSTGRES_USER: sonar POSTGRES_PASSWORD: sonar volumes: - postgresql:/var/lib/postgresql - postgresql_data:/var/lib/postgresql/data volumes: sonarqube_data: sonarqube_extensions: sonarqube_logs: postgresql: postgresql_data:
在此建立一組可持久化的 SonarQube Community 版+ PostgreSQL
Step2.啟動服務
docker compose up -d
docker ps
http://localhost:9000
預設要求強密碼變更不能沿用admin這一組密碼
Admin@123
當沒有要用此服務就下
docker compose down
要再啟用則是到相應目錄使用
docker compose up -d
SonarScanner for .NET
在解壓縮後該目錄中找尋到
SonarQube.Analysis.xml 這邊也有預設配置可調配
儀錶板建立一個donet名稱專案
選擇localproject
這邊選.net 後會跳給你在細部細選是屬於.net core 還是.net framework的專案
現在準備一個.net framework asp.net mvc專案
第一動.執行 SonarScanner for .NET 的「Begin」步驟,用來把你的 MSBuild 建置「接上」SonarQube 分析。
連到伺服器、抓 Quality Profile / Quality Gate 設定,準備 Roslyn 分析器(C#/VB.NET)與規則集。在目前目錄下建 .sonarqube 暫存,讓後面的 MSBuild 使用
SonarScanner.MSBuild.exe begin /k:"dotnet" /d:sonar.host.url="http://localhost:9000" /d:sonar.token="sqp_fe9c5b21163b1a1d7007eee97d0760eac2aaee28"
它會準備掃描環境、下載規則、設定 MSBuild 的分析器,等你 MSBuild 編譯完,再用 End 把結果送回伺服器。
會建立.sonarqube
第二動.執行 MSBuild 作 Rebuild 目標專案
注意第二動作儀表板指令執行之前先確保你有裝visual studio並要將msbuild.exe加入系統環境變數
/k:"dotnet" 代表指向哪一個目標projectKey,用來唯一識別 SonarQube 上的專案。
/d:sonar.host.url="http://localhost:9000"
指定 SonarQube 伺服器位址, Docker 起來的 10.6 社群版默認9000這個port。
注意第二動作儀表板指令執行之前先確保你有裝visual studio並要將msbuild.exe加入系統環境變數
以目前電腦上裝的visual studio 2022 社群版路徑默認在這
C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin
MsBuild.exe /t:Rebuild
SonarScanner.MSBuild.exe end /d:sonar.token="sqp_fe9c5b21163b1a1d7007eee97d0760eac2aaee28"
在此無資安低、中、高風險
Ref:
https://docs.sonarsource.com/sonarqube-server/10.6/analyzing-source-code/scanners/sonarscanner-for-dotnet
https://testerhome.com/topics/20767/show_wechat
留言
張貼留言