Sonar社群版容器安裝及C++支援
阿新 • • 發佈:2022-03-28
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