首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用Docker搭建Sonarqube代码扫描环境

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

作者头像
小博测试成长之路
发布2021-03-06 13:18:37
发布2021-03-06 13:18:37
1.7K00
代码可运行
举报
文章被收录于专栏:软件测试学习软件测试学习
运行总次数:0
代码可运行

Sonarqube环境搭建

这里推荐使用docker进行搭建,其他方式搭建,可参考之前的文章:SonarQube环境搭建

使用Docker 搭建Sonar的代码扫描环境:

1、先创建好几个目录,用来挂在docker数据卷,方便以后查看日志之类的,不用每次都进入容器里面看

代码语言:javascript
代码运行次数:0
运行
复制
cd /home/jenkins/docker_volume
mkdir postgresql  sonarqube
cd sonarqube
mkdir data extensions  logs

2、使用docker命令安装postgresql数据库以及sonarqube服务端

代码语言:javascript
代码运行次数:0
运行
复制
下载镜像:
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,追加以下内容:

代码语言:javascript
代码运行次数:0
运行
复制
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,然后在这个基础上再去扩展学习更深层次的内容。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小博测试成长之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档