Sonarqube 不完全食用指北
- SonarQube v7.9 起,不再支持 JDK11 以下版本
- SonarQube v7.8 起,不再支持 MySQL
SonarQube 整个架构包含 4 个组件:
- SonarQube 服务端:包含 Web 服务界面、elasticsearch 搜索引擎、计算引擎三个主要部分
- SonarQube 数据库:默认内嵌数据库,并支持 Oracle、PostgreSQL 和 Microsoft SQLServer 数据库
- SonarQube 插件:包括语言、SCM、集成、身份验证和治理插件等
- SonarScanner 客户端:开发人员或持续集成服务器通过 SonarScanner 进行项目代码分析
https://docs.sonarqube.org/8.9/
解压安装
1 | wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.9.9.56886.zip |
配置文件
grep -Ev “^$|#” /app/service/sonarqube/conf/sonar.properties1
2
3
4
5
6
7
8
9
10
11
12
13
14vi /app/service/sonarqube/conf/sonar.properties
#默认使用内置数据库,但是无法安装扩展和升级
sonar.jdbc.username=sonarqube
sonar.jdbc.password=password
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube?currentSchema=pubilc
#sonar.web.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
sonar.web.host=0.0.0.0
sonar.web.context=/sonarqube
sonar.web.port=9000
sonar.path.data=/app/data/sonarqube
sonar.path.logs=/app/logs/sonarqube
sonar.path.temp=/app/temp/sonarqube
#其他默认或者按需
多个 JDK 版本需要修改配置1
2vi /app/service/sonarqube/conf/wrapper.conf
wrapper.java.command=/app/service/jdk11/bin/java
修改内置 ES1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26vi /app/service/sonarqube/elasticsearch/config/elasticsearch.yml
cluster.name: sonar-es
node.name: es-01
#path.data: /app/data/elasticsearch
#path.logs: /app/logs/elasticsearch
##锁定物理内存地址,避免 es 使用 swap 使 IOPS 变高
#bootstrap.memory_lock: true
#bootstrap.memory_lock: false
#上述为 false 需要追加配置
#bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
xpack.security.enabled: false
#单点部署
discovery.type: single-node
#集群部署
#node.master: true
#node.data: true
#discovery.zen.minimum_master_nodes: 1
#discovery.zen.ping_timeout: 3s
#discovery.zen.ping.unicast.hosts: ["ip1:9300","ip2:9300","ip3:9300"]
#初始时 Master 节点选取
#cluster.initial_master_nodes: ["elk-01"]
#开启跨域请求
http.cors.enabled: true
http.cors.allow-origin: "*"
ES 使用 JDK111
2
3
4
5
6
7
8
9vi /app/service/sonarqube/elasticsearch/bin/elasticsearch
export JAVA_HOME=/app/service/jdk11
export PATH=$JAVA_HOME/bin:$PATH
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/app/service/jdk11/bin/java"
else
JAVA=`which java`
fi
服务启停
1 | #前台运行,关闭命令直接退出 |
Docker
1 | docker volume create --name sonarqube_data |
相关配置
启动以后浏览器访问 http://192.168.254.100:9000,默认用户名密码为:admin、admin,手首次登录需要修改
界面汉化
登录后, 打开 Administration → Marketplace,搜索 chinese pack,点击 install;
离线安装需要先去下载汉化文件并放到软件根目录下 extensions/plugins/ 文件夹里