Jenkins+Sonar质量门禁【部署篇】
老实说,我很少写部署的东西,但是不写,下一篇的实验,可能大家会有点懵逼。长话短说好了~~~
首先搞这个测试源于11月中旬,领导叫了解学习的一篇文章:超详细,自动化测试接入Jenkins+Sonar质量门禁实践【https://blog.csdn.net/jiangjunsss/article/details/119918932】。(老实说,也并不特别详细,因为有些关键点竟然没有交代,害我翻了很多歪果仁的文章才解决)。
当时新服务器没买,旧服务器资源又不够,于是决定在docker上拉个jenkins镜像做实验,随时销毁。
部署完之后,其实就是跑三个docker服务:jenkins、sonarqube和mysql。
一、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地址。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
部署完之后,假设服务器ip为:192.168.2.12,浏览器理应能访问
1、jenkins地址: 192.168.2.12:8089
2、sonar地址:192.168.2.12:9090