热门标签 | 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



推荐阅读
  • 对于许多初学者而言,遇到总线错误(bus error)或段错误(segmentation fault/core dump)是极其令人困扰的。本文详细探讨了这两种错误的成因、表现形式及解决方法,并提供了实用的调试技巧。 ... [详细]
  • 本文介绍如何从JSON格式的文件中提取数据并将其分配给Bash脚本中的变量。我们将探讨具体的命令和工具,帮助你高效地完成这一任务。 ... [详细]
  • MongoDB的核心特性与架构解析
    本文深入探讨了MongoDB的核心特性,包括其强大的查询语言、灵活的文档模型以及高效的索引机制。此外,还详细介绍了MongoDB的体系结构,解释了其文档、集合和数据库的层次关系,并对比了MongoDB与传统关系型数据库(如MySQL)的逻辑结构。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 开发笔记:由数据库某字段存数组引发的json_encode/serialize思考
    开发笔记:由数据库某字段存数组引发的json_encode/serialize思考 ... [详细]
  • 深入解析Spring Cloud微服务架构与分布式系统实战
    本文详细介绍了Spring Cloud在微服务架构和分布式系统中的应用,结合实际案例和最新技术,帮助读者全面掌握微服务的实现与优化。 ... [详细]
  • cJinja:C++编写的轻量级HTML模板引擎
    本文介绍了cJinja,这是一个用C++编写的轻量级HTML模板解析库。它利用ejson来处理模板中的数据替换(即上下文),其语法与Django Jinja非常相似,功能强大且易于学习。 ... [详细]
  • 历经三十年的开发,Mathematica 已成为技术计算领域的标杆,为全球的技术创新者、教育工作者、学生及其他用户提供了一个领先的计算平台。最新版本 Mathematica 12.3.1 增加了多项核心语言、数学计算、可视化和图形处理的新功能。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • 版本控制工具——Git常用操作(下)
    本文由云+社区发表作者:工程师小熊摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码、使用分支、出现代码冲突的解决办法、紧急保存现场和恢复 ... [详细]
  • 本章详细介绍SP框架中的数据操作方法,包括数据查找、记录查询、新增、删除、更新、计数及字段增减等核心功能。通过具体示例和详细解析,帮助开发者更好地理解和使用这些方法。 ... [详细]
  • Android 6.0 切换指定 Wi-Fi 的解决方案
    本文详细介绍了在 Android 6.0 系统中切换到指定 Wi-Fi 的方法,包括常见的问题、原因分析及解决方案。通过官方文档和代码示例,帮助开发者更好地理解和实现这一功能。 ... [详细]
  • 在寻找轻量级Ruby Web框架的过程中,您可能会遇到Sinatra和Ramaze。两者都以简洁、轻便著称,但它们之间存在一些关键区别。本文将探讨这些差异,并提供详细的分析,帮助您做出最佳选择。 ... [详细]
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社区 版权所有