使用Docker搭建Sonarqube代码扫描环境

原创
10/18 11:29
阅读数 47

Sonarqube环境搭建


这里推荐使用docker进行搭建,其他方式搭建,可参考之前的文章: SonarQube环境搭建
使用Docker 搭建Sonar的代码扫描环境:
1、先创建好几个目录,用来挂在docker数据卷,方便以后查看日志之类的,不用每次都进入容器里面看
cd /home/jenkins/docker_volumemkdir postgresql  sonarqubecd sonarqubemkdir data extensions  logs
2、使用docker命令安装 postgresql数据库以及sonarqube服务端
下载镜像:docker pull postgresdocker 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、平常在学习技术的时候,应该怎么样去学习呢?

  1. 要多关注行业的动态,多跟同行的人去交流,了解一下大家平时都在用些什么技术或者工具,自己没听过的,可以去简单了解一下,扩宽一下自己的知识面。

  2. 选定一个要学习的内容之后,可以采用自底向上/自顶向下的方式去进行学习,即 可以先从最基础的语法等开始学,然后再运用到工作中,也可以先看简单的用法,先弄出一个demo,然后在这个基础上再去扩展学习更深层次的内容。





往期推荐


你们要的测试练习网站来了

Jenkin踩过的坑~上

0基础入门软件测试之小白指南

Fiddler Everywhere之AutoResponder功能详解

Postman+Newman+Git+Jenkins实现接口自动化测试持续集成

一篇文章为你揭秘pytest的基本用法

Jenkins自动部署测试环境之jar包部署

App自动化测试之Appium环境搭建

以淘宝为例教你如何突破网站对selenium的屏蔽

Nexus3 OSS环境搭建以及在日常工作中的用途



本文分享自微信公众号 - 小博测试成长之路(libotest)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部