为了简单高效地部署及管理sonar,决定采用docker-compose版本进行部署。亲测无坑,因为坑以及被我踩完了
1、部署
首先需要安装数据库,开源的可以用 mysql 或者 postgresql 。官网上已经声明 sonarQube 7.9 版本以上不再支持 mysql 了,我们为了以后升级新版本不做数据库迁移,尽量使用 postgresql 。
可参考官方文档:
https://docs.sonarsource.com/sonarqube-community-build/
mkdir -p /opt/sonarqube/sonarqube/{logs,conf,data,extensions}
mkdir -p /opt/sonarqube/postgres/{postgresql,data}
vim /data/sonar/sonar-compose.yml
cat > /opt/sonarqube/docker-compose.yml <<EOF
version: '3'
services:
postgres:
image: postgres:12
container_name: postgres
restart: always
privileged: true
volumes:
- ./postgres/postgresql:/var/lib/postgresql
- ./postgres/data:/var/lib/postgresql/data
- /etc/localtime:/etc/localtime:ro
ports:
- "5432:5432"
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonar
TZ: Asia/Shanghai
sonar:
image: sonarqube:8.9.10-community
container_name: sonar
restart: always
privileged: true
depends_on:
- postgres
volumes:
- ./sonarqube/logs:/opt/sonarqube/logs
- ./sonarqube/conf:/opt/sonarqube/conf
- ./sonarqube/data:/opt/sonarqube/data
- ./sonarqube/extensions:/opt/sonarqube/extensions
ports:
- "9000:9000"
environment:
SONARQUBE_JDBC_USERNAME: sonar
SONARQUBE_JDBC_PASSWORD: sonar
SONARQUBE_JDBC_URL: "jdbc:postgresql://postgres:5432/sonar"
EOF
cd /opt/sonarqube
docker-compose up -d
默认账号密码 admin/admin
2、插件安装
中文插件
由于找不到7.4版本,所以我们选择离线安装
cd /opt/sonarqube/sonarqube/extensions/plugins
wget https://github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.24/sonar-l10n-zh-plugin-1.24.jar
docker restart sonar
分支插件
社区版默认只支持主分支的代码扫描,所以要支持其他分支需要下载一个插件,
注意:下载的插件版本要检查是否支持你正在使用的sonarqube版本
下载地址
https://github.com/mc1arke/sonarqube-community-branch-plugin/releases
1、安装插件
cd /opt/sonarqube/sonarqube/extensions/plugins
wget https://github.com/mc1arke/sonarqube-community-branch-plugin/releases/download/1.18.0/sonarqube-community-branch-plugin-1.18.0.jar
2、添加配置文件
cd /opt/sonarqube/sonarqube/conf
cat > sonar.properties <<EOF
sonar.web.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin-1.8.0.jar=web
sonar.ce.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin-1.8.0.jar=ce
EOF
docker restart sonar