通过Docker搭建SonarQube平台

简介: Docker 主要解决环境配置问题,这里介绍一下如何通过Docker简单的搭建和部署一个SonarQube静态代码扫描平台以及如何接入Jenkins持续集成及时通知开发人员。

简介



SonarQube是一个开源的代码质量管理系统,可以扫描项目中重复代码、编码标准、单元测试、代码覆盖率、代码复杂度、潜在Bug等。支持Java、C/C++、C#、PHP、Groovy、JavaScript、Python等多种语言。代码扫描的好处在于可以通过配置规则扫描代码设计缺陷和提供代码优化建议从而提高代码的质量。本文介绍使用docker技术在Mac环境下搭建SonarQube并配合Jenkins和钉钉机器人完成代码的扫描及报告通知。


Docker安装



这里介绍最简单的手动安装方式,可以通过这个链接下载:


https://download.docker.com/mac/stable/Docker.dmg


如同 MacOS 其它软件一样,安装也非常简单,双击下载的 .dmg 文件,然后将那只鲸鱼图标拖拽到 Application 文件夹即可(其间可能会询问系统密码)。


SonarQube安装



这里参考了名叫 jamesz2011 网友的方案略加修改,依次执行下面的shell命令即可:


wget https://github.com/logan62334/sonarqube/raw/master/ifSonarqube.sh
sudo chmod a+x ifSonarqube.sh
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
brew install dos2unix
sudo dos2unix ifSonarqube.sh
./ifSonarqube.sh

当你看到下面的界面时,证明已经成功启动:


image.png

然后访问:http://127.0.0.1:9000 即可看到成功后的SonarQube页面:


image.png

Jenkins配置



这里就不详细介绍Jenkins的安装和使用了,直接讲如何配置Sonar检查任务:


在插件管理中搜索SonarQube Scanner for Jenkins并安装,在系统设置中配置sonar的服务地址(即http://127.0.0.1:9000),注意要把127.0.0.1换成搭建有sonar服务的服务器IP,还有就是第一次启动sonar平台时生成的token。


接下来在Jenkins所在服务器的maven setting文件中增加下面的配置项:


<profile> 
    <id>sonar</id> 
    <activation> 
        <activeByDefault>true</activeByDefault> 
    </activation> 
    <properties> 
    <!-- Optional URL to server. Default value is http://localhost:9000 --> 
        <sonar.host.url> http://ip:9000 </sonar.host.url> 
    </properties> 
</profile>

最后来看看sonar扫描任务的job怎么配置:


这里通过参数化构建的方式来为不同的代码仓库做检查:

image.png

image.png



然后增加maven构建任务:

image.png

clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=true -P dev
sonar:sonar


最后增加构建后任务,同过Python脚本分析项目中pom.xml文件提取groupId和artifactId来拼接报告地址:

image.png

if [ ! -d "venv" ]; then 
    virtualenv venv 
fi 
. venv/bin/activate 
pip install requests 
python /Users/xxx/tools.py pom.xml
#tools.py:
wget https://github.com/logan62334/sonarqube/raw/master/tools.py
相关文章
|
5月前
|
关系型数据库 测试技术 数据库
使用Docker搭建测试用例管理平台TestLink:简易指南
使用Docker搭建TestLink测试管理软件的步骤如下:首先,拉取`bitnami/mariadb`和`bitnami/testlink-archived`镜像。然后,启动MariaDB容器,创建数据库。接着,启动TestLink容器并连接到MariaDB。检查容器状态确保它们已启动。最后,访问`localhost:8099`以使用TestLink,默认用户名为`user`,密码为`bitnami`。这样,你就能在本地便捷地进行测试管理了。
165 2
|
5月前
|
搜索推荐 测试技术 数据安全/隐私保护
【Docker项目实战】Docker环境下部署NeonLink书签平台
【2月更文挑战第17天】Docker环境下部署NeonLink书签平台
231 0
|
5月前
|
Kubernetes 监控 云计算
Docker与云计算平台集成:AWS、Azure、GCP完全指南
Docker和云计算平台的结合,如AWS(Amazon Web Services)、Azure(Microsoft Azure)和GCP(Google Cloud Platform),为现代应用的构建和部署提供了巨大的便利性。本文将深入研究如何与这些主要云计算平台集成Docker,提供更多示例代码和详细指南,帮助大家更全面地利用这些强大的工具。
|
5月前
|
运维 Linux Docker
Docker多平台安装与配置指南
Docker的流行使得它成为开发者和运维人员不可或缺的工具。在本文中,将深入探讨如何在不同平台上安装和配置Docker,旨在为大家提供详尽的指南,确保他们能够顺利地使用这一强大的容器化工具。
|
5月前
|
开发框架 安全 网络安全
【Docker 专栏】Docker 多平台应用构建与部署
【5月更文挑战第8天】Docker作为一种关键的容器化技术,简化了多平台应用的构建与部署。它提供一致的运行环境,确保应用在不同平台无缝运行;通过分层构建机制加速镜像创建,提升开发效率。Docker的可移植性、高效部署及资源利用率是其主要优势。流程包括开发环境准备、构建镜像、测试验证及部署。然而,面临操作系统差异、网络安全和资源限制等挑战,需注意安全、版本管理和性能优化。Docker在多平台场景的应用将持续发挥价值。
96 6
【Docker 专栏】Docker 多平台应用构建与部署
|
5月前
|
监控 应用服务中间件 nginx
使用 Docker Compose V2 快速搭建日志分析平台 ELK (Elasticsearch、Logstash 和 Kibana)
ELK的架构有多种,本篇分享使用的架构如图所示: Beats(Filebeat) -> -> Elasticsearch -> Kibana,目前生产环境一天几千万的日志,内存占用大概 10G
279 4
|
4月前
|
网络安全 开发者 Docker
探索 Docker Machine:打造无缝多平台容器部署的利器
探索 Docker Machine:打造无缝多平台容器部署的利器
|
5月前
|
存储 Cloud Native 文件存储
云原生之使用Docker部署Nas-Cab个人NAS平台
【5月更文挑战第2天】云原生之使用Docker部署Nas-Cab个人NAS平台
610 4
|
5月前
|
机器学习/深度学习 人工智能 分布式计算
人工智能平台PAI 操作报错合集之在本地构建easyrec docker镜像时遇到了无法连接docker服务如何解决
阿里云人工智能平台PAI (Platform for Artificial Intelligence) 是阿里云推出的一套全面、易用的机器学习和深度学习平台,旨在帮助企业、开发者和数据科学家快速构建、训练、部署和管理人工智能模型。在使用阿里云人工智能平台PAI进行操作时,可能会遇到各种类型的错误。以下列举了一些常见的报错情况及其可能的原因和解决方法。
|
5月前
|
测试技术 Linux 网络安全
【好玩的开源项目】使用Docker部署SyncTV视频同步和共享平台
【4月更文挑战第16天】使用Docker部署SyncTV视频同步和共享平台
551 1
下一篇
无影云桌面