docker + mysql安装sonarqube

docker sonarqube地址:https://hub.docker.com/_/sonarqube

docker mysql地址:https://hub.docker.com/_/mysql

以下在linux环境执行:

一、拉取sonarqube镜像

docker pull sonarqube

二、docker安装mysql

1、拉取mysql 5.7版本镜像

docker pull mysql:5.7

2、启动mysql

docker run -p 3307:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

3、进入启动的mysql container

docker exec -it mysql(容器名) bash

4、创建sonar数据库和sonar用户

#登录mysql

mysql -u root -p

#创建sonar数据库

create database sonar

#添加远程登录用户
CREATE USER 'sonar'@'%' IDENTIFIED WITH mysql_native_password BY 'sonar';
GRANT ALL PRIVILEGES ON *.* TO 'sonar'@'%';
三、启动sonar
docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 --link=mysqlnew:mysql -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -e SONARQUBE_JDBC_URL="jdbc:mysql://ip:3307/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" sonarqube
说明上面mysql 3307端口是因为启动mysql对外用了3307
 
四、汉化sonar
 docker + mysql安装sonarqube

五、sonar客户端sonar-scanner的安装

1、下载onar-scanner客户端

wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.3.0.1492-linux.zip

2、解压

unzip sonar-scanner-cli-3.3.0.1492-linux.zip sonar-scanner

3、移到标准位置

mv son-scanner /usr/local/sonar-scanner/

4、修改配置

cd /usr/local/sonar-scanner/conf

vi sonar-scanner.properties

#----- Default SonarQube server
sonar.host.url=http://ip:9000(sonar服务端访问地址)
#----- Default source code encoding
sonar.sourceEncoding=UTF-8
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://ip:3307/sonar?useUnicode=true&characterEncoding=utf8
sonar.login=admin
sonar.password=admin

4、环境变量配置

vi /etc/profile

在末尾环境变量处增加以下内容

export SONAR_SCANNER_HOME=/usr/local/sonar-scanner/

export PATH=$SONAR_SCANNER_HOME/bin:$PATH

5、验证

在linux任意目录执行sonar-scanner会进入执行过程,证明安装成功

六、程序目录下的sonar-project.properties配置

1、在程序pom.xml所在目录添加sonar-project.properties文件

2、sonar-project.properties文件内容如下

#项目的key(对应sonar服务端的一个身份标识)
sonar.projectKey=xx-project
#项目的名字(可以随便写,这个名字在sonar显示的)
sonar.projectName=xxproject
#项目的版本
sonar.projectVersion=1.0
#需要分析的源码的目录
sonar.sources=.
#这是target(如果没编译可以不写)
sonar.java.binaries=src
#java语言
#sonar.language=java
#编码格式
sonar.sourceEncoding=UTF-8

 7、执行扫描验证

在项目根目录执行sonar-scanner

到sonar服务端项目列表查看结果

docker + mysql安装sonarqube

 八、jenkins打通

待续