docker 方式安装SonarQube:lts和中文插件


title: docker 方式安装SonarQube:lts和中文插件
meta:

  • name: description
    content: SonarQube docker
  • name: keywords
    content: SonarQube docker
    created: 2020/04/14
    updated: 2020/04/14
    tags:
  • SonarQube

1、获取 postgresql 的镜像

docker pull postgres

2、启动 postgresql

mkdir -p /data/postgresql/data
mkdir -p /var/lib/postgresql
ln -s /data/postgresql/data/ /var/lib/postgresql/data
docker run --name postgresqlDB -p 5432:5432 -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -e POSTGRE_DB=sonar -v /data/postgresql/data:/var/lib/postgresql/data -d postgres

3、获取 sonarqube 的镜像

docker pull sonarqube:lts

4、启动 sonarqube

mkdir -p /data/sonarqube/data
mkdir -p /data/sonarqube/extensions
chmod -R 777 /data/sonarqube/
chmod -R 777 /opt/sonarqube/
ln -s /data/sonarqube /opt/sonarqube
mkdir -p /opt/sonarqube/extensions/plugins
docker run --name sonarqube --link postgresql -e SONARQUBE_JDBC_URL=jdbc:postgresql://postgresqlDB:5432/sonar -p 9000:9000 -d -v /data/sonarqube/data:/opt/sonarqube/data -v /data/sonarqube/extensions:/opt/sonarqube/extensions sonarqube

5、代码质量检验sonar平台

1.打开 http://localhost:9000/ , 点击 "Log in"

登录账号:admin 密码:admin


sonarqube01.jpg

6、初始状态确认

检查sonar 缺省的Java等语言的Sonar Way是否存在,详细如下图所示


sonarqube02.jpg

关键是quality profile页面中,缺少quality profile。


sonarqube03.jpg

安装语言插件
由于本文是使用typescript的Angular应用,安装SonarTS和SonarJS即可。而SonarJS安装时也会顺便带上SonarTS,所以只需要安装SonarJS即可。


sonarqube04.jpg

安装完毕之后,可以看到SonarTS也已经被安装了。


sonarqube05.jpg

另外同时安装一下Java语言的插件


sonarqube06.jpg

使用界面方式安装,SonarQube也是将此jar文件放至extensions目录下,具体来说分如下步骤:
步骤1: 下载开始后,jar文件会保存在downloads目录下,jar文件在下载中的状态:会形成sonar-*.jar.tmp文件。
步骤2: 下载完毕之后,会自动将downloads目录下的.tmp后缀删除
本文示例的SonarTS、SonarJS和SonarJava的安装,实际上对应了三个文件,直接以jar文件结尾的表明已经下载完毕,否则还会带有.tmp后缀。下载的中间状态如下所示

liumiaocn:extensions liumiao$ tree .
.
├── downloads
│ ├── sonar-java-plugin-5.14.0.18788.jar.tmp
│ ├── sonar-javascript-plugin-6.1.0.11503.jar.tmp
│ └── sonar-typescript-plugin-2.1.0.4359.jar
└── plugins

2 directories, 3 files
liumiaocn:extensions liumiao$

如果下载时速度不好的情况下,此时会显示非常之慢,查看日志又往往没有任何提示,此时可以通过查看一下中间文件的大小来进行确认是否仍在正常执行

此时再确认SonarQube的页面,就会发现已经成功了


sonarqube07.jpg

点击Restart Server进行重启, 以管理员身份登录,可以确认到quality profile已经添加了三种语言的Sonar way规则。实际本文示例只是用到一种。


sonarqube08.jpg

7、安装中文插件

进入github: https://github.com/SonarQubeCommunity/sonar-l10n-zh

sonarqube09.jpg

查看兼容的列表
SonarQube7.9 对应的是sonar-l10n-zh 1.29
进入https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases 下载1.29 的版本
然后将sonar-l10n-zh-plugin-1.29.jar 上传到/opt/sonarqube/extensions/plugins 目录下。重启后,中文插件就可以生效了。

8、以 Maven 项目为例,

Maven 项目

pom.xml 添加配置:

    
    
        
            sonar
            
                true
            
            
                http://127.0.0.1:9000/
            
        
    

8.1执行命令,检测代码质量

$ mvn sonar:sonar

8.2 成功之后,返回到浏览器,就可以浏览自己的项目的代码质量了

sonarqube10.jpg
sonarqube11.jpg
sonarqube12.jpg

目前码云上代码分析工具首推的也是 sonarqube,支持各种语言的程序检测,使用简单方便,感觉非常适合微服务的代码评审,强烈推荐。

9、idea配置sonar步骤如下:

9.1 安装sonar插件,如果安装失败就多安装几次,博主就是安装了两次,第一次安装失败了,第二次才安装成功的。

安装成功后重启idea


sonarqube13.jpg

9.2 添加sonar服务器连接

sonarqube14.jpg
sonarqube15.jpg
sonarqube16.jpg
sonarqube17.jpg

9.3 选择项目对应的规则

sonarqube18.jpg

点击OK之后则配置完成

9.4 idea下方会出现SonarLint选项

mvn sonar:sonar
-Dsonar.projectKey=project
-Dsonar.host.url=http://ip:9000
-Dsonar.login=6c0344dbbf9aa168c6f9b2dde3371108dcba9269

sonarqube19.jpg

9.5 打开一个文件点击运行按钮,则最该代码进行扫描,会自动显示扫描的问题,双击问题则会定位到相应的代码。

sonarqube20.jpg

10、安装错误记录

  • 错误描述:
    ERROR: [1] bootstrap checks failed [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]


    sonarqube21.jpg
  • 解决办法:

vi /etc/sysctl.conf 
vm.max_map_count=655360
sysctl -p

你可能感兴趣的:(docker 方式安装SonarQube:lts和中文插件)