51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

sonarqube 安装(docker)

docker compose 下安装 sonarqube(带多分支插件) {#articleContentId}

2、sonarqube 依赖 Elasticsearch(存储代码扫描报告)、postgres(存储规则数据、账号密码等)。而 Elasticsearch 本身是不能用 root 账户启动的(如果是 tar 包安装在启动 sonarqube 的时候经常忘记切换账户而启动失败),postgres 也得安装,java 也得装(java 还有版本的限制,高版本的 sonarqube 都依赖到 java 11\java 17 很容易跟项目的Java版本冲突)。

二、安装准备
1、一台2核4G的虚拟机(不管是VMWare还是阿里云ECS,2C4G至少保证服务启动起来,虚拟机不会卡死)。

2、安装有 docker 和 docker compose

1、sonarqube 版本
现在sonarqube官网 上最新版是10.4,但是长期维护版是9.9.4,所以我们 sonarqube 版本选用 9.9.4 这个版本。

2、sonarqube-community-branch-plugin 版本
现在我们官网上下到的 sonarqube 都是社区版 Community Edition,社区版代码扫描分支只支持 master,要多分支支持,需要再下载一个插件 sonarqube-community-branch-plugin,放到 /opt/sonarqube/extensions/plugins 下面(注意放到别的目录不起作用)。

我们进到 sonarqube-community-branch-plugin的github。

https://github.com/mc1arke/sonarqube-community-branch-plugin

在兼容性这一块,sonarqube 9.9 提供的是 1.14.0 版本的插件。

Release 1.14.0 · mc1arke/sonarqube-community-branch-plugin (github.com)

四、安装

1、docker-compose.yml

version: "2"
 
services:
  sonarqube:
    image: sonarqube:lts
    container_name: sonarqube
    depends_on:
      - db
    ports:
      - 9002:9000
    networks:
      - sonarnet
    environment:
      SONARQUBE_JDBC_URL: jdbc:postgresql://db:5432/sonar
      SONARQUBE_JDBC_USERNAME: sonar
      SONARQUBE_JDBC_PASSWORD: sonar
    volumes:
      - ./sonarqube/conf:/opt/sonarqube/conf
      - ./sonarqube/data:/opt/sonarqube/data
      - ./sonarqube/extensions:/opt/sonarqube/extensions
      - ./sonarqube/lib/bundled-plugins-plugins:/opt/sonarqube/lib/bundled-plugins
      - ./sonarqube-community-branch-plugin-1.14.0.jar:/opt/sonarqube/extensions/plugins/sonarqube-community-branch-plugin.jar
      - ./sonarqube-community-branch-plugin-1.14.0.jar:/opt/sonarqube/lib/common/sonarqube-community-branch-plugin.jar
 
  db:
    image: postgres
    container_name: sonar_postgres
    networks:
      - sonarnet
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
      POSTGRES_DB: sonar
    volumes:
      - ./postgresql/data:/var/lib/postgresql/data
      
networks:
  sonarnet:
    driver: bridge

然后准备好问文件,再启动

准备文件:

(1)

先把 sonarqube-community-branch-plugin-1.14.0.jar 放到 docker-compose.yaml 同级路径下

(2)

准备: sonar.properies 放到路径: ./sonarqube/conf

sonar.properies 内容如下:

sonar.web.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin.jar=web
sonar.ce.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin.jar=ce
 
sonar.jdbc.url=jdbc:postgresql://db:5432/sonar?currentSchema=public
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar

(3)修改权限

 chmod 777 -R sonarqube
chmod 777 -R postgresql

权限要修改,不然es 会报错

这里要多尝试几次, 删除文件夹,在重启也试试

3-访问:

http://10.0.0.215:9002/

默认管理员账号 admin/admin

baimei123

接着会有插件风险提示,因为

sonarqube-community-branch-plugin 插件不是 sonarqube 官网插件,会有风险提示。

点击 I understand the risk 后,就进入 sonarqube web 界面了。

分别点击 1、2、3 就能在应用市场看到我们已经安装的插件里面,有

sonarqube-community-branch-plugin

docker compose 下安装 sonarqube(带多分支插件)_docker-compose sonarqube-CSDN博客

赞(2)
未经允许不得转载:工具盒子 » sonarqube 安装(docker)