SonarQube简介

  • SonarQube是管理代码质量的一个开放平台,可以快速定位代码中潜在的或者明显的错误。支持Java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等二十几种编程语言的代码质量管理与检测。

    安装PostgreSQL数据库

  • 官网上已经声明 SonarQube7.9版本以上不再支持 MySql 了,所以我们使用 PostgreSQL

    安装镜像

    1. docker pull postgres:11

    新建目录

    1. mkdir -p /home/apps/postgres/{postgresql,data}

    创建并启动

    1. docker run -d --name postgres -p 5432:5432 \
    2. -v /home/apps/postgres/postgresql:/var/lib/postgresql \
    3. -v /home/apps/postgres/data:/var/lib/postgresql/data \
    4. -v /etc/localtime:/etc/localtime:ro \
    5. -e POSTGRES_USER=sonar \
    6. -e POSTGRES_PASSWORD=sonar \
    7. -e POSTGRES_DB=sonar \
    8. -e TZ=Asia/Shanghai \
    9. --restart always \
    10. --privileged=true \
    11. postgres:11

    SonarQube安装

    安装镜像

    1. docker pull sonarqube:8.9.2-community

    新建目录

    1. mkdir -p /home/apps/sonarqube/{extensions,logs,data}

    修改内核参数

  • 不修改启动会报错:ERROR: Elasticsearch did not exit normally - check the logs at /opt/sonarqube/logs/sonarqube.log ```bash vim /etc/sysctl.conf

增加以下配置

vm.max_map_count=262144 fs.file-max=65536

使配置生效

sysctl -p

  1. <a name="S6ogO"></a>
  2. ### 创建并启动
  3. > 💡--link 这个参数,这个是数据库的容器名,后面的数据库连接地址,同样采用容器名进行连接
  4. ```bash
  5. docker run -d --name sonarqube -p 6004:9000 \
  6. --link postgres \
  7. -v /home/apps/sonarqube/extensions:/opt/sonarqube/extensions \
  8. -v /home/apps/sonarqube/logs:/opt/sonarqube/logs \
  9. -v /home/apps/sonarqube/data:/opt/sonarqube/data \
  10. -e SONARQUBE_JDBC_URL=jdbc:postgresql://postgres:5432/sonar \
  11. -e SONARQUBE_JDBC_USERNAME=sonar \
  12. -e SONARQUBE_JDBC_PASSWORD=sonar \
  13. --restart always \
  14. --privileged=true \
  15. sonarqube:8.9.2-community

查看日志

  1. docker logs sonarqube

开放6004端口

  1. # 添加6004端口
  2. firewall-cmd --zone=public --add-port=6004/tcp --permanent
  3. # 重新载入
  4. firewall-cmd --reload

页面访问

  • http://127.0.0.1:6004 ,默认账号:admin,密码:admin

    sonar安装中文插件

  • 方式一:Administration->Marketplace->搜索chinese pack,进行相应版本的安装,如下图

image.png