docker-comose搭建sonarqube 及 maven项目使用
前言
博主前面已经写过如何使用docker-comose搭建openldap,本文将介绍 sonarqube 的环境搭建一、sonarqube 简介
SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误(通用模板)
也可以自定义代码规范审核过滤器,我自己理解就是配置一大堆匹配表达式差不多的东东(见谅,基本都是用通用模板)
二、docker及docker-compose安装
博主已经分享过文章,关于docker和docker-compose安装,详见 Linux环境docker以及docker-compose安装
三、docker-compose安装sonarqube (postgres)
其实不用postgres也可以部署,单独部署一个sonarqube 也是可以使用的,完全看自己了
version: '3'
services:
postgres:
image: postgres:12
container_name: postgres
restart: always
environment:
- TZ=Asia/Shanghai
- POSTGRES_USER=sonar
- POSTGRES_PASSWORD=sonar
- POSTGRES_DB=sonar
volumes:
- /var/docker-volumes/postgres/postgresql/:/var/lib/postgresql
- /var/docker-volumes/postgres/data/:/var/lib/postgresql/data
ports:
- 5432:5432
sonarqube:
image: sonarqube:lts
restart: always
container_name: sonarqube
environment:
- SONARQUBE_JDBC_URL=jdbc:postgresql://postgres:5432/sonar
- SONARQUBE_JDBC_USERNAME=sonar
- SONARQUBE_JDBC_PASSWORD=sonar
- JAVA_OPTS="-server -Xms512m -Xmx1024m -Xss512k"
volumes:
- /var/docker-volumes/sonarqube/conf:/opt/sonarqube/conf
- /var/docker-volumes/sonarqube/logs:/opt/sonarqube/logs
- /var/docker-volumes/sonarqube/data:/opt/sonarqube/data
- /var/docker-volumes/sonarqube/extensions:/opt/sonarqube/extensions
ports:
- 9100:9000
depends_on:
- postgres
四 、宿主服务器配置更新
1、更新文件/etc/sysctl.conf
vim /etc/sysctl.conf
添加以下内容
vm.max_map_count = 262144
fs.file-max = 65536
2、更新文件/etc/security/limits.conf
vim /etc/security/limits.conf
添加以下内容
* soft nofile 65536
* hard nofile 65536
3、重启宿主服务器
reboot
五、启动docker容器
将第三步的内容copy并写入到文件docker-compose.yml后在当前文件所在目录执行docker-compose up -d 开始拉取镜像文件并创建容器
六、验证部署结果
浏览器直接打开 http://127.0.0.1:9100(记得登陆的是自己服务器的ip, 博主的9000已经给portainer管理软件用了, 就用的是9100)
admin/admin
登陆后强制修改登陆密码
安装汉化插件,看自己了
要点击同意风险,不然不让你安装
然后重启即可
重启后登陆,完成汉化
好了,到这里就基本就安装完成了,下面介绍maven搭配使用
七、maven项目配置
本文只介绍初级使用,官方的使用介绍地址:
Gradle - SonarScanner for Gradle
Maven - use the SonarScanner for Maven
Jenkins - SonarScanner for Jenkins
1、配置maven设置setting.xml
<settings>
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>
http://myserver:9000
</sonar.host.url>
</properties>
</profile>
</profiles>
</settings>
2、配置maven项目pom.xml
根据项目层级架构自己微调,不要加上去没用就认为放错地方了
<build>
<plugins>
<!-- 指定jdk -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<skip>true</skip>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<!--打包jar-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- sonar scanner-->
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.2</version>
</plugin>
</plugins>
</build>
3、配置sonar扫描项目信息
配置完成后在项目中执行以下命令
mvn clean verify sonar:sonar -Dmaven.test.skip=true -Dsonar.login=3a21e287516bc58b7b7e4d17e6d32643c7a5d43b
执行完成后会显示项目扫描结果地址:
直接点击url查看