Docker 构建自定义 SonarQube 镜像

针对 SonarQube 社区版的一些不足,我们可以通过开源的第三方插件等完善它,为了方便后续部署或迁移,我们可以将我们改造过的应用构建成一个镜像包。

Dockerfile 配置说明:https://blog.yujian95.cn/archives/dockerfile

增加的第三方插件

名称功能地址
sonarqube-community-branch-plugin一个SonarQube插件,允许在Community版本中进行分支分析。https://github.com/mc1arke/sonarqube-community-branch-plugin
sonar-l10n-zh中文语言包https://github.com/xuhuisheng/sonar-l10n-zh
sonar-gitlab-plugingitlab 提交分析https://github.com/gabrie-allaigre/sonar-gitlab-plugin
sonar-pmd-plugin阿里代码规范https://github.com/caowenliang/sonar-pmd-p3c

Dockerfile 定义内容

FROM sonarqube:8.9-community
MAINTAINER yujian95 yujian95_cn@163.com
# 复制第三方插件
# 多分支检测插件,需要放置在 /lib/common/ 和 /extensions/ 下面
COPY 3rd-party-plugins/sonarqube-community-branch-plugin-1.8.1.jar /opt/sonarqube/lib/common/
COPY 3rd-party-plugins/sonarqube-community-branch-plugin-1.8.1.jar /opt/sonarqube/extensions/
# 多分支检测插件配置
# - sonar.ce.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin-1.8.1.jar=ce
# - sonar.web.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin-1.8.1.jar=web
COPY conf/sonar.properties /opt/sonarqube/conf/
# 中文语言包,或者 直接通过插件商城安装
COPY 3rd-party-plugins/sonar-l10n-zh-plugin-8.9.jar /opt/sonarqube/extensions/

构建命令

# 一般情况下
docker build -t yujian95/sonarqube:8.9 .
# 使用 苹果 M1 芯片构建时,需要指定运行环境
docker buildx build -t yujian95/sonarqube:8.9 --platform=linux/amd64 -o type=docker .
docker login
docker push yujian95/sonarqube:8.9

相关地址

源代码地址:github
镜像地址:dockerhub