天天看點

docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰

docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰
docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰

文章目錄

  • ​​一、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      
docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰

​​http://192.168.92.129:9000/​​

http://ip:9000/      
docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰

賬戶密碼都是admin

admin      
docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰
二、中文簡體

2.1. 版本對照

這是SonarQube的漢化包

相容清單如下:

docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰

如果你是8.7的可以直接market搜尋下載下傳

docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰

2.2. download

Chinese      

​​github漢化插件下載下傳​​

按照版本對照要求,我的版本是7.7的,需要去github去下載下傳,手動添加

docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰

把sonar-l10n-zh-plugin-1.27.jar複制到

cd      
docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰

2.3. 重新開機容器

docker restart sonarqube7.7      
三、規則添加

3.1. 規則無

quality profile頁面中,缺少quality profile

docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰

3.2. 規則下載下傳

規則都有相容的版本

8.9版本中很多不需要安裝了

參照:​​​https://docs.sonarqube.org/latest/instance-administration/plugin-version-matrix/​​​。

凡是提示Bundled的都已經預設內建了:

docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰
docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰
插件 版本
sonar-java-plugin <=5.14.0.18788
sonar-javascript-plugin <=5.2.1.7778

規則清單:

​​​https://binaries.sonarsource.com/Distribution/​​

docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰

這裡一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      
docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰
docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰
四、規則添加

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      
docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰

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)      
docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰
五、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

docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰

6.2. 項目建立

如果隻是為了驗證maven和sonar可以随便上傳一個maven項目即可。

我這裡示範,随機找了個項目,等會回合jenkins進行內建,建立springboot項目上傳gitlab,這裡示範采用已經準備好的項目,

docker sonarqube 7.7 sonar-scanner-4.6.2 maven 安裝、搭建+實戰
mvn sonar:sonar \
  -Dsonar.projectKey=test \
  -Dsonar.host.url=http://192.168.92.129:9000 \
  -Dsonar.login=2023104e205b5aafe608584b0891a95442fe3247