热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux+docker+mysql+sonarqube+gitlab代码审查

代码自动审查环境搭建准备安装dockeryuminstall-yyum-utilsdevice-mapper-persistent-datalvm2gccgcc-c++yum-

代码自动审查环境搭建

准备

  安装docker

yum install -y yum-utils device-mapper-persistent-data lvm2 gcc gcc-c++
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https://registry.docker-cn.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker info #查看镜像

  

  上传容器镜像

mysql-5.7.tar #mysql容器镜像包
gitlab.tar
sonarqube-7.7.tar
gitlab-runner.tar
sonar-scanner-cli.tar
sonar-l10n-zh-plugin-1.26.jar #sonar中文补丁
sonar-css-plugin-1.0.3.724.jar #代码检测文件
sonar-gitlab-plugin-4.1.0-SNAPSHOT.jar
sonar-php-plugin-2.16.0.4355.jar
sonar-html-plugin-3.1.0.1615.jar
#容器镜像可以通过docker pull 镜像,也可以rz上传
#https://github.com/xuhuisheng/sonar-l10n-zh/releases/tag/sonar-l10n-zh-plugin-1.26

  加载镜像

docker load #docker save > gitlab.tar gitlab:latest #导出docker镜像

  建立docker持久化文件夹

cd /home
mkdir -p mysql/{conf,data,log}
mkdir -p gitlab/{config,logs,data}
mkdir -p sonarqube/{data,extensions,logs}
chmod -R 777 sonarqube
mkdir -p gitlab-runner/config

安装

  运行mysql

docker run -p 3306:3306 --name mysql \
-v /home/mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf \
-v /home/mysql/data/:/var/lib/mysql/ \
-v /home/mysql/log/:/var/log/mysql/ \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker exec -it mysql /bin/bash
mysql -uroot -p123456
create database sonar;
grant all privileges on *.* to sonar@'%' identified by '123456';
flush privileges;
#表可以不建
use sonar;
create table student(id int,name varchar(40),age int,PRIMARY KEY(id)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into student(id,name,age) values (1,'里斯','20');
exit
exit

  运行sonarqube

docker run -d -p 9000:9000 \
-e "SONARQUBE_JDBC_URL=jdbc:mysql://192.168.31.131:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useCOnfigs=maxPerformance&useSSL=false" \
-e "SONARQUBE_JDBC_USERNAME=sonar" \
-e "SONARQUBE_JDBC_PASSWORD=123456" \
-v /home/sonarqube/data:/opt/sonarqube/data \
-v /home/sonarqube/extensions:/opt/sonarqube/extensions \
-v /home/sonarqube/logs:/opt/sonarqube/logs \
--name sonarqube sonarqube:7.7-community
#ip地址填写宿主机的地址即可
#建议添加 --restart always \

  汉化sonarqube及增加语言包

mkdir /home/sonarqube/extensions/plugins
cp sonar-l10n-zh-plugin-1.26.jar /home/sonarqube/extensions/plugins/
cp sonar-css-plugin-1.0.3.724.jar /home/sonarqube/extensions/plugins/
cp sonar-gitlab-plugin-4.1.0-SNAPSHOT.jar /home/sonarqube/extensions/plugins/
cp sonar-html-plugin-3.1.0.1615.jar /home/sonarqube/extensions/plugins/
cp sonar-php-plugin-2.16.0.4355.jar /home/sonarqube/extensions/plugins/
docker restart sonarqube

  运行gitlab

docker run -d --name gitlab \
--hostname gitlab \
-p 443:443 -p 80:80 -p 2222:22 \
--volume /home/gitlab/config:/etc/gitlab \
--volume /home/gitlab/logs:/var/log/gitlab \
--volume /home/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:13.11.6-ce.0
vim /home/gitlab/config/gitlab.rb
external_url 'http://192.168.31.131'
#没有域名,替换域名为ip地址
#建议添加--restart always
#若需要避开80端口,如1080,需容器内外端口一致,同时启动后立即配置external_url,否则无法登陆网页
-p 443:443 -p 1080:1080 -p 2222:22 \
external_url 'http://192.168.31.131:1080'

  汉化gitlab

登陆gitlab,先设置密码,默认用户名是root

  运行gitlab-runner

docker run -d --name gitlab-runner \
-v /home/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
#建议添加 --restart always \

  注册runner

docker exec -it gitlab-runner gitlab-runner register -n \
--url http://192.168.31.131/ \
--registration-token kq9KZXYzFo_Mc2DWqPZQ \
--executor docker \
--description "Docker Runner" \
--docker-image "sonarsource/sonar-scanner-cli:latest" \
--docker-volumes /var/run/docker.sock:/var/run/docker.sock

注册新的作业

登陆gitlab-runner容器

 

   创建sonar检测项目

登陆sonarqube,账号admin,密码admin

在sonarqube web界面中点击新建项目,输入项目标识(例如:project)和显示名称(例如:project),创建一个TOKEN、输入TOKEN名称(例如:project)后点击创建会生成TOKEN串、保存TOKEN串。

 

   创建.gitlab-ci.yml文件

image:
name: sonarsource/sonar-scanner-cli:latest
entrypoint: [""]
variables:
SONAR_TOKEN: "ef358f7fcf8afc11d9b9af97b9c9d1cd800" # 在sonarqube中创建项目时生成的TOKEN
SONAR_HOST_URL: "http://192.168.31.131:9000"
GIT_DEPTH: 0
sonarqube-check:
stage: test
script:
- sonar-scanner -X -Dsonar.qualitygate.wait=true -Dsonar.projectKey=project # sonarqube中项目的标识
allow_failure: true
only: # 仅检测master合并请求和master分支代码提交,sonarqube-ce版本只支持分析master分支
- merge_requests
- master

 

  查看作业情况 

 

 

 

 

 

 至此,自动代码审查环境安装完毕。

 

 

 

参考:Gitlab与sonarqube整合-代码提交自动检测_ioops-CSDN博客_gitlab与sonarqube

 


原文链接:https://www.cnblogs.com/gkmin/p/15045638.html



推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 学习笔记(34):第三阶段4.2.6:SpringCloud Config配置中心的应用与原理第三阶段4.2.6SpringCloud Config配置中心的应用与原理
    立即学习:https:edu.csdn.netcourseplay29983432482?utm_sourceblogtoedu配置中心得核心逻辑springcloudconfi ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在Oracle数据库中创建序列时如何选择cache或nocache参数。cache参数可以提高序列的存取速度,但可能会导致序列丢失;nocache参数可以避免序列丢失,但在高并发访问时可能导致性能问题。文章详细解释了两者的区别和使用场景。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 本文介绍了解决github无法访问和克隆项目到本地的问题。作者建议通过修改配置文件中的用户名和密码来解决访问失败的问题,并提供了详细步骤。同时,还提醒读者注意输入的用户名和密码是否正确。 ... [详细]
author-avatar
810526猪肝
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有