ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Jenkins 进阶篇 - SonarQube 安装

2021-05-29 19:32:38  阅读:248  来源: 互联网

标签:插件 sonarqube 进阶篇 SonarQube Jenkins docker data max


SonarQube 之前的名称 Sonar(声纳),是一个 Java 语言实现的开源代码质量管理系统,专门用于持续集成分析和测量代码的质量。如果你希望扩展 SonarQube 平台可以通过开源的插件来实现,或者也可以自己开发插件然后集成到 SonarQube 中。如果你还没用过 SonarQube 系统,接下来跟着我来安装和使用 SonarQube 系统吧。

我们依旧还是采用 Docker 容器来运行我们的 SonarQube 系统,SonarQube 默认采用内嵌数据库 H2,可用于测试研究,如果是正式使用的话还是采用生产环境级别的数据库,例如 PostgreSQL、Microsoft SQL Server 或者 Oracle 数据库,需要注意的是目前新版的 SonarQube 不支持使用 MySQL 数据库了,如果你确实想使用 MySQL 作为数据库,那你就得使用 6.7 - 7.8 版本的 SonarQube。至于新版的 SonarQube 为什么再不支持 MySQL,各位同学可以参加如下链接的说明 https://community.sonarsource.com/t/end-of-life-of-mysql-support/8667

我这里采用的是版本较新的 SonarQube 8.9.0 和 PostgreSQL 13.3,docker-compose.yml 内容如下:

version: "3.7"

services:
  sonarqube-in-docker:
    image: sonarqube:8.9.0-community
    container_name: sonarqube-in-docker
    restart: on-failure:3
    ports:
      - 9000:9000
    volumes:
      - ./docker_data/sonarqube_data:/opt/sonarqube/data
      - ./docker_data/sonarqube_extensions:/opt/sonarqube/extensions
      - ./docker_data/sonarqube_logs:/opt/sonarqube/logs
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://postgres-in-docker:5432/sonarqube
      SONAR_JDBC_USERNAME: admin
      SONAR_JDBC_PASSWORD: adminPwd
    networks:
      - jenkins_network

  postgres-in-docker:
    image: postgres:13.3
    container_name: postgres-in-docker
    restart: on-failure:3
    ports:
      - 5432:5432
    volumes:
      - ./docker_data/postgresql_data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: sonarqube
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: adminPwd
    networks:
      - jenkins_network

networks:
  jenkins_network:

另外需要注意的是 SonarQube 对系统性能有一定的要求,要确保满足如下的配置要求:

  • vm.max_map_count 的值要大于等于 524288
  • fs.file-max 的值要大于等于 131072
  • 运行 SonarQube 的用户可以至少打开 131072 个文件描述符
  • 运行 SonarQube 的用户至少可以打开 8192 个线程

如果不知道以上配置的具体情况可以分别执行如下命令查看:

sysctl vm.max_map_count
sysctl fs.file-max
ulimit -n
ulimit -u

如果不满足要求可以用管理员权限执行下面的命令进行调整,如果你想知道 SonarQube 的其他安装要求,可以参见官方文档说明 https://docs.sonarqube.org/latest/requirements/requirements/

sysctl -w vm.max_map_count=524288
sysctl -w fs.file-max=131072
ulimit -n 131072
ulimit -u 8192

然后去到和 docker-compose.yml 文件同目录的地方执行如下命令启动 SonarQube 和 PostgreSQL:

# 启动容器
docker-compose up -d

# 查看容器的运行日志
docker logs -f container_name

等待 SonarQube 启动完成后,就可以用 IP 和 9000 端口访问 SonarQube 服务了。例如我的是 http://192.168.31.200:9000,需要登录,默认的管理员账号和密码都是 admin:image.png

新版的 SonarQube 初次安装后需要重置默认密码以保证账号安全:

image.png

登录进去后默认就在这个管理面板,我这里还没安装中文语言库,所以是英文界面:

image.png

接下来我们安装中文语言库,根据如图的步骤进入到应用市场下载中文语言库插件,注意安装插件之前要先同意授权协议。

image.png

插件安装好后需要重启下 SonarQube 系统,如果你还想用其他插件,自己在应用市场搜索你想要的插件:

image.png

如果由于网络原因导致插件下载失败,可以自行在 GitHub 去下载中文语言库插件的 jar 包,然后放到 SonarQube 安装目录下的 plugins 目录中。然后重启 SonarQube 系统,后期如果自己开发了 SonarQube 插件,也是将 jar 包放在 plugins 目录中。

重启好后再次进入到系统,我们的 SonarQube 界面就是中文的了:

image.png

我们的 SonarQube 系统搭建到这里就已经完成了。如果你在实际操作中遇到什么问题,欢迎留言讨论。

标签:插件,sonarqube,进阶篇,SonarQube,Jenkins,docker,data,max
来源: https://blog.csdn.net/u014559804/article/details/117389681

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有