1、拉取镜像
docker pull sonarqube
docker pull postgres
2、运行数据库容器
docker run --name postgresql -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -p 5432:5432 --restart=always -d postgres
3、运行sonar容器
docker run -d --name sonarqube \
--link postgresql \
-p 6090:9000 \
-e sonar.jdbc.username=sonar \
-e sonar.jdbc.password=sonar \
-e sonar.jdbc.url=jdbc:postgresql://postgresql:5432/sonar \
sonarqube
这里用到了docker 的link(容器之间的连接) ,基本用法--link postgresql:pg,冒号后面是别名,如果不加则表示别名跟原名一样。这时会在容器内建一个对应别名的host映射,进入容器看一下如下:
# cat /etc/hosts
172.18.0.11 postgresql c38f96c3fadb
当然也可以不用--link 直接写ip
docker run -d --name sonarqube \
-p 6090:9000 \
-e sonar.jdbc.username=sonar \
-e sonar.jdbc.password=sonar \
-e sonar.jdbc.url=jdbc:postgresql://192.168.10.123:5432/sonar \
sonarqube
4、设置
如果不设置会出现报错:
max virtual memory areas vm.max_map_count [65530] is too low
怎么设置参考:https://blog.csdn.net/linghuanxu/article/details/88937825
vm.max_map_count需要大于等于262144
这个参数的意思是一个进程最多可用于的内存映射区(memory map areas),大部分程序使用数量不会超过1000,默认值65536。
sysctl -w vm.max_map_count=262144 即可修改成功,但是,重启后将会被置回。想要永久修改的话,在/etc/sysctl.conf文件最后添加一行vm.max_map_count=262144。但是要重启后才生效。不过既然当前的已经修改了,那就无所谓了。所以,两个一起改,妥妥哒。
fs.file-max需要大于等于65536
file-max是设置 系统所有进程一共可以打开的文件数量 。
sysctl -w fs.file-max=65536 这是临时设置。
/etc/sysctl.conf中加入fs.file-max = 65536 重启生效,永久有效。
我的项目中暂时是临时设置的,最好改为永久修改。
5、打开
用默认账号 admin admin 登录