Sonar
一、版本
环境 | 版本 |
---|---|
Debian Linux | 11.02 |
Docker | 20.10.8 |
Sonar | 8.9.7-community |
sonar-cxx | 2.0.7 |
PostgreSQL | 13.6-bullseye |
二、安装部署
Sonar安装需要数据库支持.
在该服务安装过程中, 同时安装了推荐数据库PostgreSQL数据库.
1. 修改系统虚拟参数
root用户:
echo "vm.max_map_count=262144" > /etc/sysctl.conf
sysctl -p
2. 目录创建
sudo mkdir -p /app /data
sudo chown -R 1000:1000 /app /data
3. 拉取镜像
docker pull postgres:13.6-bullseye
docker pull sonarqube:8.9.7-community
4. 创建新桥接网络
创建桥接网络层比link单向通讯更方便好用
docker network create docker-innet
5. 数据库镜像运行
使用默认的桥接方式
docker run \
-d \
-e TZ=Asia/Shanghai \
-v /etc/localtime:/etc/localtime \
--restart always \
--name postgres \
--net docker-innet \
-p 5432:5432 \
-v /data/postgres:/var/lib/postgresql/data \
-e POSTGRES_PASSWORD=kLZ2SJiKExyxX574 \
postgres:13.6-bullseye
密码应每次随机生成
6. 数据库设置
docker exec -it postgres bash
psql -U postgres -W
create user sonar with password 'sonar';
create database sonar owner sonar;
grant all privileges on database sonar to sonar;
7. Sonar服务部署
docker run \
-d \
-e TZ=Asia/Shanghai \
-v /etc/localtime:/etc/localtime \
--restart always \
--name sonar \
--net docker-innet \
-p 80:9000 \
-v /app/sonar/logs:/opt/sonarqube/logs \
-v /app/sonar/extensions:/opt/sonarqube/extensions \
-v /data/sonar:/opt/sonarqube/data \
-e sonar.jdbc.username=sonar \
-e sonar.jdbc.password=sonar \
-e sonar.jdbc.url=jdbc:postgresql://postgres:5432/sonar \
sonarqube:8.9.7-community
8. 验证服务
登录服务: http://127.0.0.1/
默认管理员: admin/admin
登陆后修改密码
三、服务集成
1. LDAP服务集成
在7.9版本的Sonar之后,内置 LDAP功能,不需要安装插件
因该配置文件本身及父级目录权限比较复杂, 无法在容器运行时挂载, 则可直接进入容器修改
- 进入容器
docker exec -it sonar bash
- 操作配置文件
vi /opt/sonarqube/conf/sonar.properties
末尾添加内容:
#--------------------------
## LDAP
sonar.security.realm=LDAP
ldap.url=ldap://127.0.0.XXX:389
ldap.bindDn=CN=Administrator,CN=Users,DC=ept,DC=com
ldap.bindPassword=XXXXX
ldap.user.baseDn=OU=MyCompany,DC=MyCompany,DC=com
ldap.user.request=(&(objectClass=user)(sAMAccountName={login}))
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=email
- 重启容器
docker restart sonar
四、配置调优
- 插件安装确认
初次安装插件时需同意安装插件风险.
Administration
=>Marketplace
, I understand the risk - 安装中文包
Administration
=>Marketplace
, 搜索chinese
后, 点击install
- C++插件支持
社区版本不支持C/C++的识别, 需要使用开源插件进行支持.
- 下载插件: https://github.com/SonarOpenCommunity/sonar-cxx/releases/tag/cxx-2.0.7
- 插件放置到:
/app/sonar/extensions/plugins
- 重启容器
docker restart sonar
-
插件市场确认安装
Administration
=>Marketplace
, 搜索CXX (Community)
-
设置属性
配置
=>通用设置
=>CXX
配置
=>通用设置
=>CXX External Analyzers