sonarqube
基于本地服务和mvn命令进行的代码分析,并将分析结果推送到sonar服务器中
docker pull postgres 拉取数据库
docker pull sonarqube 拉取sonarqube
启动postgres容器并创建sonar用户
docker run --name db -p 5432:5432 -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d postgres
注:本人在构建容器的时候只执行了上面的语句,(因为数据库里面下面的配置都有了)
进入容器
docker exec -it db /bin/bash
进入命令行
psql -U sonar
create database sonar;创建sonar数据库
alter role sonar createdb;alter role sonar superuser;alter role sonar createrole;给sonar授权
alter database sonar owner to sonar;更改sonar数据库拥有者(这一步是必须的,否则会sonarqube会连接失败)
\q
exit退出
启动sonarqube容器
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
如果启动报vm.max_map_count错误的话是给elasticsearch分配的数量不够
进入配置文件最后一行添加配置
vi /etc/sysctl.conf
vm.max_map_count=262144
启动成功后登录localhost:9000端口就可以访问了 默认账号密码:admin
四. 通过maven使用
输入maven命令:
mvn sonar:sonar \ -Dsonar.projectKey=test \ -Dsonar.host.url=http://172.16.1.83:9000 \ -Dsonar.login=4dd2e88ac9587b02c03edb8185f307a3e8dd1ccc
上面命令是sonarqube 帮我们生成的
简化版的命令 mvn sonar:sonar -Dsonar.host.url=http://localhost:9000