• Sonar社区版容器安装及C++支持


    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功能,不需要安装插件
    因该配置文件本身及父级目录权限比较复杂, 无法在容器运行时挂载, 则可直接进入容器修改

    1. 进入容器
    docker exec -it sonar bash
    
    1. 操作配置文件
    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
    
    1. 重启容器
    docker restart sonar
    

    四、配置调优

    1. 插件安装确认
      初次安装插件时需同意安装插件风险.
      Administration => Marketplace, I understand the risk
    2. 安装中文包
      Administration => Marketplace, 搜索chinese后, 点击install
    3. C++插件支持

    社区版本不支持C/C++的识别, 需要使用开源插件进行支持.

    docker restart sonar
    
    • 插件市场确认安装
      Administration => Marketplace, 搜索CXX (Community)

    • 设置属性
      配置 => 通用设置 => CXX
      配置 => 通用设置 => CXX External Analyzers

  • 相关阅读:
    典型页面布局
    网站表单输入框去除浏览器默认样式
    时间格式问题
    经典算法
    css自动换行
    git pull报“unable to update local ref”解决方案
    MYSQL数据插入和更新的语法
    正则表达式去除连续重复的字符
    linux保存住github的账号和密码
    php动态获取常量
  • 原文地址:https://www.cnblogs.com/jrri/p/16066387.html
Copyright © 2020-2023  润新知