文章目錄
- 一、docker安裝Mysql
- 1. 映射目錄
- 2. 賦予權限
- 3. 鏡像拉取
- 4. 運作容器
- 5. 檢視日志
- 6. 建立資料庫
- 二、docker安裝sonarqube
- 2.1. 映射目錄
- 2.2.賦予權限
- 2.3. 鏡像拉取
- 2.4. 運作容器
- 2.5. 檢視日志
- 二、中文簡體
- 2.1. 版本對照
- 2.2. download
- 2.3. 重新開機容器
- 三、規則添加
- 3.1. 規則無
- 3.2. 規則下載下傳
- 3.3. 插件放置
- 3.3. 重新開機容器
- 四、規則添加
- 4.1. 下載下傳
- 4.2. 安裝scanner
- 4.3. 更換jdk版本
- 五、maven安裝配置
- 5.1. 下載下傳
- 5.2. 解壓
- 5.3. 配置環境變量
- 六、 sonar maven組合
- 6.1. 生成token
- 6.2. 項目建立
一、docker安裝Mysql
1. 映射目錄
mkdir -p /app/mysql/conf
mkdir -p /app/mysql/logs
mkdir
2. 賦予權限
chmod -R 777
3. 鏡像拉取
這一步可以跳過,直接執行運作容器即可
docker pull mysql:5.7
4. 運作容器
先通過鏡像建立mysql容器
docker run --name mysql5.7 -d \
-p 3306:3306 \
-v /app/mysql/conf:/etc/my.cnf.d \
-v /app/mysql/logs:/logs \
-v /app/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--restart always \
--privileged=true \
5. 檢視日志
docker logs -f mysql5.7
6. 建立資料庫
create databases sonar;
二、docker安裝sonarqube
2.1. 映射目錄
mkdir
2.2.賦予權限
chmod -R 777
2.3. 鏡像拉取
這一步可以跳過,直接執行運作容器即可
docker pull sonarqube:7.7-community
2.4. 運作容器
\
-d \
--name sonarqube7.7 \
-p 9000:9000 \
-p 9092:9092 \
-e SONARQUBE_JDBC_USERNAME=root \
-e SONARQUBE_JDBC_PASSWORD=123456 \
-e SONARQUBE_JDBC_URL="jdbc:mysql://192.168.92.129:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" \
--privileged=true \
-v /app/sonarqube/logs:/opt/sonarqube/logs \
-v /app/sonarqube/conf:/opt/sonarqube/conf \
-v /app/sonarqube/data:/opt/sonarqube/data \
-v /app/sonarqube/extensions:/opt/sonarqube/extensions\
注意裡面的JDBC相關的url uesrname password要改為跟資料庫一緻的
2.5. 檢視日志
docker logs -f sonarqube7.7
http://192.168.92.129:9000/
http://ip:9000/
賬戶密碼都是admin
admin
二、中文簡體
2.1. 版本對照
這是SonarQube的漢化包
相容清單如下:
如果你是8.7的可以直接market搜尋下載下傳
2.2. download
Chinese
github漢化插件下載下傳
按照版本對照要求,我的版本是7.7的,需要去github去下載下傳,手動添加
把sonar-l10n-zh-plugin-1.27.jar複制到
cd
2.3. 重新開機容器
docker restart sonarqube7.7
三、規則添加
3.1. 規則無
quality profile頁面中,缺少quality profile
3.2. 規則下載下傳
規則都有相容的版本
8.9版本中很多不需要安裝了
參照:https://docs.sonarqube.org/latest/instance-administration/plugin-version-matrix/。
凡是提示Bundled的都已經預設內建了:
插件 | 版本 |
sonar-java-plugin | <=5.14.0.18788 |
sonar-javascript-plugin | <=5.2.1.7778 |
規則清單:
https://binaries.sonarsource.com/Distribution/
這裡一java語言插件為例,進行示範
3.3. 插件放置
把
sonar-java-plugin-5.14.0.18788.jar sonar-javascript-plugin-5.2.1.7778.jar
複制到
/app/sonarqube/extensions/plugins
目錄下面
cd
3.3. 重新開機容器
- 重新開機容器
docker restart sonarqube7.7
四、規則添加
4.1. 下載下傳
https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/ 一般是安裝最新的我個人。選擇了sonar-scanner-cli-4.6.1.2450-linux.zip。
4.2. 安裝scanner
cd /app
wgethttps://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip
unzip sonar-scanner-cli-4.6.2.2472-linux.zip
vim /etc/profile
export SCANNER_HOME=/app/sonar-scanner-4.6.2.2472-linux
export PATH=$PATH:$SCANNER_HOME/bin
source
确認版本安裝成功生效
[root@localhost sonar-scanner-4.6.2.2472-linux]# sonar-scanner -v
INFO: Scanner configuration file: /app/sonar-scanner-4.6.2.2472-linux/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarScanner 4.6.2.2472
INFO: Java 11.0.11 AdoptOpenJDK (64-bit)
INFO: Linux 3.10.0-957.el7.x86_64 amd64
4.3. 更換jdk版本
vim /app/sonar-scanner-4.6.2.2472-linux/bin/sonar-scanner
###修改use_embedded_jre參數
use_embedded_jre=false
[root@localhost bin]# sonar-scanner -v
INFO: Scanner configuration file: /app/sonar-scanner-4.6.2.2472-linux/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarScanner 4.6.2.2472
INFO: Java 1.8.0_301 Oracle Corporation (64-bit)
五、maven安裝配置
5.1. 下載下傳
wget
5.2. 解壓
tar
5.3. 配置環境變量
vi
export M2_HOME=/app/apache-maven-3.8.4
export PATH=$M2_HOME/bin:$PATH
source
驗證
mvn -v
六、 sonar maven組合
6.1. 生成token
6.2. 項目建立
如果隻是為了驗證maven和sonar可以随便上傳一個maven項目即可。
我這裡示範,随機找了個項目,等會回合jenkins進行內建,建立springboot項目上傳gitlab,這裡示範采用已經準備好的項目,
mvn sonar:sonar \
-Dsonar.projectKey=test \
-Dsonar.host.url=http://192.168.92.129:9000 \
-Dsonar.login=2023104e205b5aafe608584b0891a95442fe3247