SonarQube 是一個可以用來管理程式品質的工具,針對程式的撰寫方式會給予檢核與建議,是一個開源的工具,並支持多種語言,以及可以再多種工具中套用。(如上圖)
SonarQube基於需要儲存程式掃描的結果,所以需要跟DB結合一起使用,所以在配置SonarQube時,可以使用docker-compose.yml 一起執行DB與SonarQube。
SonarQube 一定要結合DB一起運行,才可以儲存對於程式分析結果的資料,需要留意的是,SonarQube 7.9版本之後,就不在支援使用MySQL作為DB,所以如果是7.9以後的版本,目前官方是只能結合以下DB使用:Oracle / Microsoft SQL Server / PostgreSQL。
所以以下範例是結合PostgreSQL使用。
先使用docker pull docker pull sonarqube:10.2.0-community
跳轉到我要的資料夾路徑,創建一個資料夾,並新增docker-compose.yml文件,來統一管理SonerQube container 以及 SonarQube db container
使用 vi docker-compose.yml
編輯docker-compose.yml文件
(建議也可以直接把檔案丟到IDE環境編輯,因為當錯誤IDE會提示,比較不會產生錯誤)
編輯完後在此資料夾目錄下執行 docker-compose up
(關於compose文件的說明,於前幾則配置Java web 以及 db時已有細部說明,這邊就不再特別論述內容)
⇒ 下方會同時新增User為sonar,以及database 為 sonar,就不需要再進到postgresSQL資料庫中新增了。
version: '3.7'
networks:
sonarqube_net:
driver: bridge
services:
db:
image: postgres
container_name: postgres
networks:
- sonarqube_net
environment:
- POSTGRES_USER=sonar
- POSTGRES_PASSWORD=sonar
ports:
- "5432:5432"
sonarqube:
image: sonarqube:10.2.0-community
container_name: sonarqube
networks:
- sonarqube_net
ports:
- "9000:9000"
depends_on:
- db
environment:
SONAR_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
SONAR_JDBC_USERNAME: sonar
SONAR_JDBC_PASSWORD: sonar
啟動成功後,使用localhost:9000 就可以拜訪SonarQube 頁面囉~
預設帳號密碼會是 admin / admin 123456
登入後會請你初次修改密碼,改完後就可以進到主要頁面