服务端部署(Dokcer)
安装Docker
网上下载一个docker的安装包,为了省事也可以直接用yum,我比较喜欢用安装包来安装
安装解压安装包,复制文件到*/usr/bin*,复制服务启动脚本到*/usr/lib/systemd/system/*
cd /usr/local/src/
tar -xvf docker-19.03.12.tgz
cp /usr/local/src/docker/* /usr/bin/
cp /usr/local/src/docker.service /usr/lib/systemd/system/
修改容器存放目录
mkdir -p /data/docker
修改docker.service文件,在ExecStart后添加如下内容
--graph=/data/docker --storage-driver=overlay
用systemctl管理docker启停
systemctl start docker #启动docker
systemctl stop docker #停止docker
systemctl restart docker #重启docker
systemctl status docker #查看docker状态
docker info #查看docker信息
镜像加速:
1.修改docker配置文件,我们选用七牛云镜像站,也可以选阿里镜像
2.重启
docker中国官方镜像加速地址:https://registry.docker-cn.com
[root@docker01 ~]# cat /etc/docker/daemon.json
{"registry-mirrors": ["https://reg-mirror.qiniu.com"]}
安装docker-compose
复制文件到*/usr/local/bin/*,赋予执行权限,创建软链接
cp /usr/local/src/docker-compose /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
查看docker-compose版本
[root@test src]# docker-compose --version
docker-compose version 1.24.1, build 4667896b
服务端部署
使用docker-compose部署Sonarqube的服务端
version: '3'
services:
postgres:
image: postgres:latest
container_name: postgres
restart: always
privileged: true
networks:
- sonar
volumes:
- ./sonar/postgres/postgresql:/var/lib/postgresql
- ./sonar/postgres/data:/var/lib/postgresql/data
- /etc/localtime:/etc/localtime:ro
ports:
- "5432:5432"
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonar
TZ: Asia/Shanghai
sonar:
image: sonarqube:8.9.10-community
container_name: sonar
restart: always
privileged: true
networks:
- sonar
volumes:
- ./sonar/sonarqube/logs:/opt/sonarqube/logs
- ./sonar/sonarqube/conf:/opt/sonarqube/conf
- ./sonar/sonarqube/data:/opt/sonarqube/data
- ./sonar/sonarqube/extensions:/opt/sonarqube/extensions
ports:
- "9002:9000"
links:
- "postgres:postgres"
environment:
ALLOW_EMPTY_PASSWORD: "yes"
SONARQUBE_JDBC_USERNAME: sonar
SONARQUBE_JDBC_PASSWORD: sonar
SONARQUBE_JDBC_URL: "jdbc:postgresql://postgres:5432/sonar"
networks:
sonar:
driver: bridge
部署完成后打开浏览器,输入服务器的地址:9002进入sonarqube,默认用户密码是admin/admin
我这台服务器是http://192.168.0.176:9002
进入系统后在配置里选择应用商店,搜索chinese安装中文插件
![](https://i-blog.csdnimg.cn/blog_migrate/df20c44a43eb40d529ad9b962c489f41.png)
Jenkins集成sonar-scanner
sonar-scanner是用来扫描代码中的bug,也就是客户端
使用链接下载安装包
cd /data/jenkins
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.8.0.2856-linux.zip
解压,并修改配置文件,加上两条:
sonar.host.url=http://192.168.0.176:9002
sonar.sourceEncoding=UTF-8
unzip sonar-scanner-cli-4.8.0.2856-linux.zip
cat sonar-scanner-4.8.0.2856-linux/conf/sonar-scanner.properties
#Configure here general information about the environment, such as SonarQube server connection details for example
#No information about specific project should appear here
#----- Default SonarQube server
#sonar.host.url=http://localhost:9000
sonar.host.url=http://192.168.0.176:9002
#----- Default source code encoding
#sonar.sourceEncoding=UTF-8
sonar.sourceEncoding=UTF-8
在sonarqube的我的账号生成一个令牌,生成以后复制一下
![](https://i-blog.csdnimg.cn/blog_migrate/afc855e17e6ba16aa1acc808c9a88506.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9f2687b6b9246c0d4c8336688213856f.png)
在Jenkins中找到系统配置,添加这个sonarqube的url,token中点下面的添加,把刚复制的令牌添加上去
![](https://i-blog.csdnimg.cn/blog_migrate/4497833c74c2dd3a9fc3051bf726be71.png)
![](https://i-blog.csdnimg.cn/blog_migrate/83dd9a30b3f06e482b997d34c75912fc.png)
再到全局配置
![](https://i-blog.csdnimg.cn/blog_migrate/7f2a3e9c8dbaa75ac963ef50ebaf2c40.png)
添加Node js环境和SonarQube Scanner环境
![](https://i-blog.csdnimg.cn/blog_migrate/7aaae05dc87c0c6f9de7ad1764779804.png)
![](https://i-blog.csdnimg.cn/blog_migrate/57868c4c8520a016192a09b872d2414b.png)
创建任务
创建一个Jenkins任务(自由风格)来测试一下扫描
填上git地址和分支后,下面添加Node环境
![](https://i-blog.csdnimg.cn/blog_migrate/f81c0fb894aa25cb0d4759f8ec1f7545.png)
构建步骤中选择Execute SonarQube Scanner
选择几个参数,projectKey和projectName可以自己随意命名,但是最好不要有中文
sonar.projectKey=estate4-plateform-server
sonar.projectName= estate4-plateform-server
sonar.language=java
sonar.sourceEncoding=UTF-8
sonar.sources=$WORKSPACE
sonar.java.binaries=$WORKSPACE
![](https://i-blog.csdnimg.cn/blog_migrate/24961baa80055e15fb804483e110a91d.png)
配置好了以后就可以开始执行这个任务了,执行成功后会可以去服务端查看它的质量了,默认的配置会检测出很多语法问题和代码不规范的问题,后期还可以自己定义检测质量的规则和合格的级别
![](https://i-blog.csdnimg.cn/blog_migrate/4398dd52794f70b2119b5e1dcac74e73.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c1cfa334be5312a35547d5111b118558.png)