Sonarqube环境搭建
这里推荐使用docker进行搭建,其他方式搭建,可参考之前的文章:SonarQube环境搭建
使用Docker 搭建Sonar的代码扫描环境:
1、先创建好几个目录,用来挂在docker数据卷,方便以后查看日志之类的,不用每次都进入容器里面看
cd /home/jenkins/docker_volume
mkdir postgresql sonarqube
cd sonarqube
mkdir data extensions logs
2、使用docker命令安装postgresql数据库以及sonarqube服务端
下载镜像:
docker pull postgres
docker pull sonarqube
启动postgresql镜像:
cd /home/jenkins/docker_volume
通过下面的命令会启动一个postgresql的实例,并创建一个和用户名相同的数据库
docker run -itd --name postgresql -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -p 5432:5432 -v $PWD/postgresql:/var/lib/postgresql/data postgres
启动sonarqube镜像:
注意:SONARQUBE_JDBC_URL中指定的数据库如果手动改成了其他的话,是需要先在postgresql上创建好数据库的
docker run -itd --name sonarqube -p 9000:9000 --link postgresql:db
-e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -e SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar
-v $PWD/sonarqube/data:/opt/sonarqube/data -v $PWD/sonarqube/extensions:/opt/sonarqube/extensions -v $PWD/sonarqube/logs:/opt/sonarqube/logs sonarqube
3、检查是否搭建成功
a),通过navicat工具连接PostgreSQL,检查是否可以连接,并且可以查看sonar的数据库下面是否自动创建了相关的表。
b),检查sonarqube的服务端的地址是否可以正常访问:
搭建过程中遇到的问题&&注意事项
1、启动sonarqube镜像的时候,可能会报错,日志中会提示
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] ,
解决方法:
编辑 /etc/sysctl.conf,追加以下内容:
vm.max_map_count=262144
保存后,执行:
sysctl -p
2、启动可能报无法连接到数据库 ,需要检查数据库是否提前创建好。
3、postgresql的容器被删除重新启动后,如果重启sonarqube的容器,那么将会报错:Error response from daemon: Cannot link to a non running container: /postgresql AS /sonarqube/db
解决方案:
执行命令:service docker restart
4、如果大家从网上看其他人写的博客什么的,启动sonarqube镜像的时候,可能还会暴露9092端口 ,我查了一圈资料,目前没看到这个端口干什么用的,可以暂时不映射这个端口,后续如果出现问题 可以再进行处理。
总结
1、用docker进行容器化部署的时候,为什么要使用-v参数映射数据卷呢?
映射数据卷的目的,是为了实现数据持久化,这样的话 ,如果在启动容器的时候,少写了什么参数之类,或者后面想添加什么其他的参数,不会影响里面现有的业务数据之类的。
2、平常在学习技术的时候,应该怎么样去学习呢?
要多关注行业的动态,多跟同行的人去交流,了解一下大家平时都在用些什么技术或者工具,自己没听过的,可以去简单了解一下,扩宽一下自己的知识面。
选定一个要学习的内容之后,可以采用自底向上/自顶向下的方式去进行学习,即 可以先从最基础的语法等开始学,然后再运用到工作中,也可以先看简单的用法,先弄出一个demo,然后在这个基础上再去扩展学习更深层次的内容。
往期推荐
Fiddler Everywhere之AutoResponder功能详解