Jenkins+Sonar质量门禁【部署篇】

Jenkins+Sonar质量门禁【部署篇】

  老实说,我很少写部署的东西,但是不写,下一篇的实验,可能大家会有点懵逼。长话短说好了~~~

  首先搞这个测试源于11月中旬,领导叫了解学习的一篇文章:超详细,自动化测试接入Jenkins+Sonar质量门禁实践【https://blog.csdn.net/jiangjunsss/article/details/119918932】。(老实说,也并不特别详细,因为有些关键点竟然没有交代,害我翻了很多歪果仁的文章才解决)。

  当时新服务器没买,旧服务器资源又不够,于是决定在docker上拉个jenkins镜像做实验,随时销毁。

部署完之后,其实就是跑三个docker服务:jenkins、sonarqube和mysql。

Jenkins+Sonar质量门禁【部署篇】

一、jenkins部署 

1、拉取镜像:docker pull jenkinsci/blueocean:1.24.8

(jdk在镜像里面自带了,不用额外装)

2、创建挂载目录

mkdir -p /home/data/jenkins chmod 777 -R /home/data/jenkins/

3、启动(注意,这条命令后面会逐渐优化)

docker run -dit --name jenkins -u root -p 8089:8080 -p 50000:50000 \
-v /home/data/jenkins:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
--restart=always --privileged=true \
jenkinsci/blueocean:1.24.8

4、配置镜像加速地址

cat /home/data/jenkins/hudson.model.UpdateCenter.xml url改成:
 <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>

5、各种插件安装(不再累赘)

6、配置maven(实际上,就是下载解压,然后映射到jenkins容器内,因为要用来maven编译)

参考:https://blog.csdn.net/piaoniu_1985/article/details/107907503

7、web 端 Jenkins 配置 maven 地址 jenkins界面—— 全局工具配置,找到MAVEN_HOME,写在jenkins容器内的maven地址。

Jenkins+Sonar质量门禁【部署篇】

8、重启 jenkins

docker run -dit --name jenkins -u root -p 8089:8080 -p 50000:50000 \
-v /home/data/jenkins:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /opt/maven:/usr/local/maven \
-v /opt/maven_repository:/usr/local/maven_repository \
--restart=always --privileged=true \
jenkinsci/blueocean:1.24.8

 

二、sonar部署(mysql+sonar)

参考:https://www.cnblogs.com/shenh/p/13428029.html

1、部署mysql

特意写一下mysql启动命令,因为直接复制文章里的报错:

docker run --name mysql -d -p 3306:3306 --net sonarqube-tier -v /usr/mysql/conf:/etc/my.cnf.d -v /usr/mysql/logs:/logs -v /usr/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--restart always \
--privileged=true \
--network-alias mysql \
mysql:5.7

注意,启动mysql容器指定了docker 网络 sonarqube-tier,后面的sonar启动也需要

2、新建sonar库

mysql -uroot -p'密码'

MySQL [(none)]> grant all privileges on sonar.* to admin@'%'  IDENTIFIED BY 'admin';

MySQL [(none)]> grant all privileges on sonar.* to admin@'localhost'  IDENTIFIED BY 'admin'; 

 3、sonar启动

docker run -d --name sonar -p 9090:9000  -e ALLOW_EMPTY_PASSWORD=yes  -e SONARQUBE_DATABASE_USER=sonar  -e SONARQUBE_DATABASE_NAME=sonar  -e SONARQUBE_DATABASE_PASSWORD=sonar  -e SONARQUBE_JDBC_URL="jdbc:mysql://安装sonar服务端的服务器ip:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" --net sonarqube-tier --privileged=true -v /data/sonarqube/logs:/opt/sonarqube/logs -v /data/sonarqube/conf:/opt/sonarqube/conf -v /data/sonarqube/data:/opt/sonarqube/data -v /data/sonarqube/extensions:/opt/sonarqube/extensions sonarqube:7.4-community

另外配置一下sonar中文汉化包,放到宿主机这个目录:/data/sonarqube/extensions/plugins

Jenkins+Sonar质量门禁【部署篇】

  部署完之后,假设服务器ip为:192.168.2.12,浏览器理应能访问

1、jenkins地址:  192.168.2.12:8089

2、sonar地址:192.168.2.12:9090

上一篇:jenkins主题简单美化


下一篇:【时间日期】做一个小手表吧