SonarQube实战:部署(一)
基于Docker部署SonarQube及中文汉化。
一、前言
SonarQube是一种自动代码审查工具,可检测代码中的错误,漏洞和代码味道。它可以与您现有的工作流程集成,以实现跨项目分支和提取请求的连续代码检查。目前 支持java, Python, C#, PHP,PL/SQL,Cobol,JavaScrip,Groovy等二十几种编程语言的代码质量管理与检测。
二、拉取镜像
docker pull postgres:14.3
docker 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.139.0.1 pk_net
创建成功后如下如所示:
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
或者通过界面重启,如下:
汉化后的界面,如下:
分类:
SonarQube
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2021-05-12 Prometheus中使用的告警规则
2020-05-12 Elasticsearch的ETL利器——Ingest节点
2020-05-12 Elasticsearch基础但非常有用的功能之二:模板
2020-05-12 Elasticsearch基础但非常有用的功能之一:别名
2020-05-12 几篇关于MySQL数据同步到Elasticsearch的文章---第五篇:logstash-input-jdbc实现mysql 与elasticsearch实时同步深入详解
2020-05-12 几篇关于MySQL数据同步到Elasticsearch的文章---第四篇:使用go-mysql-elasticsearch同步mysql数据库信息到ElasticSearch
2020-05-12 几篇关于MySQL数据同步到Elasticsearch的文章---第三篇:logstash_output_kafka:Mysql同步Kafka深入详解