是否可以集成 SonarQube、Jenkins 和 GitLab(都在 dockers 中)?
Posted
技术标签:
【中文标题】是否可以集成 SonarQube、Jenkins 和 GitLab(都在 dockers 中)?【英文标题】:Is it possible to integrate SonarQube, Jenkins and GitLab (all in dockers)? 【发布时间】:2017-07-22 16:31:08 【问题描述】:目前,我正在进行质量流程,以确保代码是可接受的。为此,我正在集成 Jenkins、SonarQube 和 GitLab,它们在不同的服务器中运行(实际上它们在不同的 docker 容器中)。
这个想法是每次将代码推送到 GitLab 并阻止提交、合并等时使用 SonarQube 检查 SonarQube 是否未通过。
我已经将 Jenkins 与 SonarQube 集成,但 Jenkins 会检查他工作区中的代码,所以想象一下,开发人员在他的笔记本电脑上需要推送他的更改。
我的概念性问题很简单:是否可以集成这些技术来做到这一点?如果问题是肯定的,哪些步骤是必要的?
PD:我不需要查看代码、配置文件等。我只需要这样的东西:
-
配置 SonarQube 以使用 Jenkins
执行脚本以将该文件复制到该文件夹中,
...
【问题讨论】:
【参考方案1】:首先,在 docker 中意味着每个工具都在自己的容器中。 他们只需要通过网络看到对方,这就是Docker Engine in Swarm mode 的来源。
第二个“配置 Jenkins 以与 SonarQube 一起工作”...这是我在我的商店中所做的,并没有太多内容。
一旦安装了Jenkins SonarQube plugin 和address for the SonarQube server entered,您就可以configure your job 并调用声纳(例如使用maven:$SONAR_MAVEN_GOAL -Dsonar.host.url=$SONAR_HOST_URL
)
在 Jenkins 工作区中完成的分析随后将发布在 SonarQube 服务器中。
swarm 服务器是来自 marcelbirkner/docker-ci-tool-stack
项目的 2015 docker-compose.yml file 的更现代版本。
这个想法保持不变:每个元素都被隔离在自己的容器中。
【讨论】:
【参考方案2】:我自己没有尝试过,但 https://gitlab.talanlabs.com/gabriel-allaigre/sonar-gitlab-plugin 可能对你的设置很感兴趣。
【讨论】:
以上是关于是否可以集成 SonarQube、Jenkins 和 GitLab(都在 dockers 中)?的主要内容,如果未能解决你的问题,请参考以下文章