aLXK7d.jpg

此文档用于记录安装sonarqube的过程。使用postgresql作为外部数据库,docker安装postgresql过程可以参考电梯直达

在postgresql中创建数据库

我这里为了方便直接在数据库连接工具中直接创建了,你也可以在命令行创建

YtxJgI.png

安装sonarqube

安装

1
2
3
4
5
6
7
8
9
$ docker run -itd --name sonar -p 9800:9000 -p 9892:9092  \
-v /data/sonar/conf:/opt/sonarqube/conf  \
-v /data/sonar/data:/opt/sonarqube/data \
-v /data/sonar/logs:/opt/sonarqube/logs \
-v /data/sonar/extensions:/opt/sonarqube/extensions \
-e "SONARQUBE_JDBC_USERNAME=postgres"  \
-e "SONARQUBE_JDBC_PASSWORD=123456" \
-e "sonar.jdbc.url=jdbc:postgresql://172.16.xx.xx:5432/sonarqube" \
sonarqube:8.3.1-community

web端登录

  • 访问http://ip:9800

YNVTRf.png

  • 登录 账号密码为:admin:admin

YNeJuF.png

具体的使用后期自己研究一下

可能遇到的问题

文件权限问题

1
2
3
4
5
2020-05-12 07:20:58,815 main ERROR Null object returned for RollingFile in Appenders.
2020-05-12 07:20:58,816 main ERROR Unable to locate appender "file_es" for logger config "root"
2020.05.12 07:20:59 WARN  app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 1
2020.05.12 07:20:59 INFO  app[][o.s.a.SchedulerImpl] Process[es] is stopped
2020.05.12 07:20:59 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped

解决:

1
2
3
# 查询发现8.x以上的镜像里用户的UID为1000 可以将映射的文件所有者和组改为1000:1000
$ chown -R 1000:1000 data
#删除容器 在重启部署一次

虚拟内存问题

1
2
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] sonarqube

解决:

1
2
# 在宿主机上设置
$ sysctl -w vm.max_map_count=262144

参考链接

dockerhub

github

官方文档

https://github.com/SonarSource/docker-sonarqube/issues/282