docker部署pgsql
版本没关系,直接最新版就好了
docker pull postgres
启动pgsql,记录账号密码和端口号
docker run --name db -p 5432:5432 -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d postgres
进入容器
docker exec -it db /bin/bash
用sonar账号进入postgres命令行
psql -U sonar
创建sonar数据库
create database sonar;
给sonar授权
alter role sonar createdb;alter role sonar superuser;alter role sonar createrole;
更改sonar数据库拥有者(这一步是必须的,否则会sonarqube会连接失败)
alter database sonar owner to sonar;
\q 退出postgres命令行
exit 退出容器进入linux命令行
拉取sonarqube7.8
博主项目是jdk8,一开始拉的9.9,启动不起来,所以查了一下支持jdk8的7.8
版本真的很重要
sonarqube:7.8-community 是 sonar 对 jdk8 的最后一个版本,从 7.9 以后 sonar 最低支持版本为 jdk11
docker pull sonarqube:7.8-community
启动sonar
注意连接里数据库账号和密码要写对
docker run --name sq -e sonar.jdbc.password=sonar -e sonar.jdbc.username=sonar -e sonar.jdbc.url=jdbc:postgresql://postgres/sonar --link db:postgres -p 9000:9000 -d sonarqube:7.8-community
docker ps简单看看启动成功没
验证
启动成功后登录ip:9000端口就可以访问了 默认账号密码:admin
如果没连上检查下自己云服务防火墙
查看日志命令
如果访问失败,或者用curl命令,提示Connection refused,,
可以查看sonar日志,定位报错,并进行修改。
docker logs -f -t –tail==100 容器ID
基本使用
java项目maven构建,扫描命令直接copy就好了,注意token
项目pom文件修改
必须: plugins页签新增
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.4.0.905</version>
</plugin>
可选(如果这里不写,就要在maven的settings.xml里写)
在project页签新增
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.login>0377803a8169a007aaef22630bba96bd97994c88</sonar.login>
<sonar.host.url>http://localhost:9000</sonar.host.url>
<sonar.language>java</sonar.language>
</properties>
</profile>
</profiles>
开始扫描,两个方式
1.命令行
mvn sonar:sonar \
-Dsonar.projectKey=csdn \
-Dsonar.host.url=http://localhost:9000 \
-Dsonar.login=11759555a1a6adc448a7c9546c07f6b90ee78438
2.idea直接点
然后就可以看到结果了
sonar加pdf导出插件
插件版本对应
https://gitee.com/zzulj/sonar-pdf-plugin/releases
我用的3.0.3
复制到容器里
docker cp ./sonar-pdfreport-plugin-3.0.3.jar 容器id:/opt/sonarqube/extensions/plugins
重点:重启容器,并且,不能同时存在不同版本的插件不然容器都启动不了
重启以后来这里配置一下
最后sonar扫描就好了
在自己的project里会有more,点击下载