吾八哥博客

您现在的位置是:首页 > DevOps > 测试工具 > 正文

测试工具

配置Docker+Sonarqube+MySQL的Python代码分析平台(上)

吾八哥2018-04-29测试工具9398

    近期由于工作需要而要接触到代码质量代码分析平台Sonarqube(文里简称sonar),所以对sonar作了一定的研究。SonarQube是一个开源的代码分析平台,用来持续分析和评测项目源代码的质量,官方网站为:https://www.sonarqube.org/  。SonarQube已支持20+ 种编程语言,包含:Java/VB.NET/C/C++/PL/SQL/C#/T-SQL/COBOL/Flex/ABAP/Python/HTML/Groovy/RPG/PHP/JavaScript/Swift/TypeScript/Visual Basic/Objective C/PL/I。本文我将配置SonarQube的步骤记录下来,分享给有需要的人!由于工作电脑机器是windows环境,所以就在windows环境里来借助docker来配置了。

运行环境

  • Windows10企业版

  • Docker

  • Sonarqube7.1

  • MySQL5.7

配置步骤

一、安装docker

    该步骤详细的见本博客的文章:记Windows10下安装Docker的步骤

二、下载docker镜像

    1.下载Sonarqube镜像,docker镜像地址为:https://store.docker.com/images/sonarqube  我使用的是7.1版本,所以指定了7.1的tag,在命令行里执行“docker pull sonarqube:7.1”等待下载完成。

    2.下载mysql镜像,docker镜像地址为:https://store.docker.com/images/mysql Sonarqube里如果使用mysql8则会出现无法连接数据库(踩过的坑,说多了都是泪),这里推荐使用5.7,在命令行里运行“docker pull mysql:5.7”等待下载完成。

三、配置mysql数据库

    sonar自带的是Derby数据库,我们实际工作中一般都是使用mysql,所以这里也采用mysql。在命令行里运行如下docker命令新建一个mysql5.7的容器:

docker run --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7

因为sonar是在另一个docker容器里,所以这里做了个3306的端口映射,随后使用如下命令进入mysql5.7的docker容器里:

docker exec -it mysql5.7 bash

执行后进入到一个linux系统的docker容器终端里了,可以使用mysql命令了,首先要在mysql里创建一个空的数据库供sonar系统使用,这里我指定数据库名为“db_sonar71”,另外为该数据库创建一个用户sonar,密码同为sonar。

这里具体的步骤就是mysql的命令使用了,若有问题可以去搜索mysql命令相关的资料了,这里不具体写了。最后我们要看下该docker容器里的ip地址,因为待会sonar的数据配置里需要填写,可以使用linux命令查看ip地址,命令为:

cat /etc/hosts

例如我这里该容器的系统ip地址为"172.17.0.2"。

四、sonar容器启动

    上面我们配置好了sonar要使用的数据库了,这里我们直接为sonar启动指定具体的参数为mysql数据库相关的了。根据sonarqube的docker镜像官方说明,填写相关的数据库配置信息即可,修改完数据库配置信息后使用如下docker命令:

docker run -d --name sonar71 ^
    -p 9000:9000 -p 9092:9092 ^
    -e "SONARQUBE_JDBC_USERNAME=sonar" ^
    -e "SONARQUBE_JDBC_PASSWORD=sonar" ^
    -e "SONARQUBE_JDBC_URL=jdbc:mysql://172.17.0.2:3306/db_sonar71?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" ^
    sonarqube:7.1

ps:这里稍微注意一下,在windows下命令行里的字符太长的时候,可以使用"^"来指定还有待输入的命令内容,同时参数值的内容最好使用双引号哦!

如果启动出错则可以使用docker logs sonar71来查看错误日志,或者docker run的时候将-d参数改为-it就可以即时查看启动日志了。

五、进入sonar代码分析平台

    完成以上步骤后,我们可以在浏览器里输入:http://localhost:9000,即可进入到sonar的主界面了,如下图:

QQ截图20180501171825.png

六、结束语

    这种步骤可能是最简单便捷的方法了,而且也符合实际工作环境的场景。不过我开始接触sonar的时候可没这么顺利了,最开始是在windows环境下配置的,遇到了使用mysql8导致sonar无法连接数据库的情况。后来换到了linux下配置,遇到过权限问题,root账户不能启动sonar的问题等等。如果大家在配置的过程中遇到问题,可以来与我交流!下一篇即将介绍如何将代码分析结果显示到sonar平台里,稍后奉上!