SonarQube实战:部署(一)

简介: 基于Docker部署SonarQube及中文汉化。

【摘要】基于Docker部署SonarQube及中文汉化。



 

一、前言


SonarQube是一种自动代码审查工具,可检测代码中的错误,漏洞和代码味道。它可以与您现有的工作流程集成,以实现跨项目分支和提取请求的连续代码检查。目前 支持java, Python, C#, PHP,PL/SQL,Cobol,JavaScrip,Groovy等二十几种编程语言的代码质量管理与检测。

二、拉取镜像



docker pull postgres:14.3docker pull sonarqube:9.4.0-community

注:这里我们采用SonarQube9.4版本,所以需要Postgres支持,因为SonarQube7.9以上不支持Mysql了。


三、部署PgSQL和SonarQube


3.1 制作docker-compose-sonarqube.yml,内容如下:

version: '3.7'
services:
  postgres:
    image: postgres:14.3
    container_name: bdyh-postgres
    restart: always
    environment:
    #创建sonarqube所需数据库并授权
      POSTGRES_DB: sonar
      POSTGRES_USER: root
      POSTGRES_PASSWORD: xiaohezi@2021
      TZ: Asia/Shanghai
    volumes:
      - /data/postgres/conf/postgresql.conf:/etc/postgresql/postgresql.conf
      - /data/postgres/data:/var/lib/postgresql/data
    ports:
      - "5432:5432"
    networks:
      - pk_net
  sonarqube:
    image: sonarqube:9.4.0-community
    container_name: bdyh-sonarqube
    restart: always
    depends_on:
      - postgres
    environment:
      TZ: Asia/Shanghai
      #sonarqube连接postgresql配置
      SONARQUBE_JDBC_USERNAME: root
      SONARQUBE_JDBC_PASSWORD: xiaohezi@2021
      SONARQUBE_JDBC_URL: jdbc:postgresql://bdyh-postgres:5432/sonar
    volumes:
     #持久化存储sonarqube插件,日志,数据,配置
      - /data/sonarqube/extensions:/opt/sonarqube/extensions
      - /data/sonarqube/logs:/opt/sonarqube/logs
      - /data/sonarqube/data:/opt/sonarqube/data
      - /data/sonarqube/conf:/opt/sonarqube/conf
    ports:
      - "9000:9000"
    networks:
      - pk_net
networks:
  pk_net:
    external: true
图片 3.2 自定义网络
#预先创建一个自定义的网络pk_net,此处的10.139可以自定义,不冲突即可
sudo docker network create --driver bridge --subnet 10.139.0.0/16 --gateway 10.

3.3 设置es相关的配置


由于SonarQube里集成了Elasticsearch,所以需要设置es相关的配置,在宿主机配置即可,如下:

#修改/etc/security/limits.conf文件中的参数
sed -i '$a * soft nofile 65536'  /etc/security/limits.conf
sed -i '$a * hard nofile 131072'  /etc/security/limits.conf
sed -i '$a * soft nproc 2048'  /etc/security/limits.conf
sed -i '$a * hard nproc 4096'  /etc/security/limits.conf
#修改/etc/sysctl.conf文件中的参数
sed -i '$a vm.max_map_count=655360'  /etc/sysctl.conf
sysctl -p

3.4 启动

docker-compose -p sonarqube -f ./docker-compose-sonarqube.yml up -d

如下所示:


四、登录web页面(验证)


浏览器访问:ip+端口,如:192.168.4.12:9000

管理员账号密码都是:admin



修改密码:



看见如下页面即部署成功:



五、汉化


5.1 手动下载SonarQube 中文包

https://github.com/xuhuisheng/sonar-l10n-zh

   注意:对照自己的SonarQube版本,下载对应的汉化包。


将下载好的sonar-l10n-zh-plugin-9.4.jar文件,放在以下路径:


/data/sonarqube/extensions/downloads



5.2 重启


docker restart bdyh-sonarqube

或者通过界面重启,如下:



汉化后的界面,如下:


相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
3月前
|
关系型数据库 数据库 数据安全/隐私保护
使用Docker和docker-compose部署SonarQube的流程
使用Docker和docker-compose部署SonarQube提供了一种快速启动并运行代码质量分析工具的方法。它易于管理,对系统的配置依赖小,而且可以很容易地进行微服务架构的整合。通过上述步骤,您可以确保一个SonarQube的稳定、可重复的部署流程,其可以轻松地搬移到其他环境,以实现开发、测试和生产的一致性。
324 13
|
SQL 安全 IDE
SonarQube使用介绍
SonarQube使用介绍
3464 0
SonarQube使用介绍
|
关系型数据库 MySQL Linux
SonarQube启动不了的问题解决
SonarQube启动不了的问题解决
SonarQube启动不了的问题解决
|
数据采集 存储 运维
DAMA数据管理知识体系指南(3):数据治理
DAMA:国际数据管理协会,是一个全球性数据管理和业务专业志愿人士组成的非营利协会,是当前国际上在数据治理领域最权威的机构。 DMBOK2则是DAMA组织众多数据管理领域的国际级资深专家编著,深入阐述数据管理各领域的完整知识体系。它是市场上唯一综合了数据管理方方面面的一部权威性著作。 本系列文章,将针对DMBOK中的核心内容进行解读。
DAMA数据管理知识体系指南(3):数据治理
|
7月前
|
敏捷开发 运维 项目管理
Jira低成本国产方案大揭秘:2025年最值得选择的国产替代产品
随着企业对成本控制和数据合规性需求的提升,Jira项目管理工具的高昂费用和本土化不足问题日益凸显。本文对比分析了2025年主流国产替代方案(飞书项目、板栗看板、Ones等)的核心功能与适用场景,指出国产工具在中文化支持、私有化部署和成本效益方面的优势,并提供了从Jira平稳迁移的实施建议。数据显示,国产替代方案可降低80%成本,同时满足敏捷开发需求,特别适合预算有限且重视数据安全的中小企业。选择时需综合考量功能匹配度、团队适配性和迁移成本等因素。
513 0
|
Java 关系型数据库 MySQL
SonarQube——如何搭建SonarQube完整版
SonarQube——如何搭建SonarQube完整版
570 0
SonarQube——如何搭建SonarQube完整版
|
jenkins Java 持续交付
Gitee+Jenkins+SonarQube代码上线的实战操作
通过以上步骤,就可以实现基于Gitee、Jenkins和SonarQube的代码上线流程,确保代码的质量和上线过程的自动化和可控性。在实际操作中,可以根据项目的具体需求和环境进行适当的调整和优化。
|
Java jenkins 持续交付
SonarQube安装遇到的常见报错问题启动不起来等
SonarQube安装遇到的常见报错问题启动不起来等
|
缓存
【POI】导出xls文件报错:The maximum number of cell styles was exceeded. You can define up to 4000 styles in a .xls workbook
使用POI导出xls文件,由于数据过多,导致导出xls报错如下: The maximum number of cell styles was exceeded. You can define up to 4000 styles in a .xls workbook   原因: 代码中创建 HSSFCellStyle cellStyle = hssfWorkbook.createCellStyle(); 次数过多,导致报错。
7129 0
|
Docker 容器
SonarQube——Docker搭建SonarQube服务
SonarQube——Docker搭建SonarQube服务
289 0