SonarQube 9.5社区版缺失Terraform/CloudFormation支持如何解决?
问题根因
官方公告提及的9.2及以上版本支持Terraform、CloudFormation扫描的能力,仅面向商业付费版本(Developer版/Enterprise版/Data Center版)开放。你部署使用的sonarqube:9.5.0-community社区版镜像本身没有内置这两类基础设施即代码的语言识别组件、扫描规则,因此在语言设置列表中找不到对应选项,扫描包含.tf文件的仓库时,文件会被判定为不支持的格式,最终抛出The main branch has no lines of code报错。
可行解决方案
- 方案一:使用对应商业版本
将部署使用的镜像替换为同版本的商业版镜像(例如sonarqube:9.5.0-developer),完成License激活后重启服务,即可在语言设置页看到Terraform、CloudFormation选项,无需额外配置即可直接扫描对应格式的IaC文件。
注意:如果替换商业版镜像后仍看不到对应语言选项,检查Docker挂载的插件目录、扩展目录权限,确保SonarQube运行进程有目录读取权限,避免内置组件因权限问题加载失败。 - 方案二:社区版安装第三方兼容插件
不想更换商业版的情况下,可以安装适配SonarQube 9.5版本的第三方开源扫描插件实现对应能力:- 下载版本匹配的sonar-terraform、sonar-cloudformation插件jar包,放到SonarQube容器内的
/opt/sonarqube/extensions/plugins/路径下 - 重启SonarQube服务,使用管理员账号进入语言配置页确认插件加载成功
- 重新触发流水线扫描,即可正常识别Terraform、CloudFormation文件并执行规则检查
- 下载版本匹配的sonar-terraform、sonar-cloudformation插件jar包,放到SonarQube容器内的

内容的提问来源于stack exchange,提问作者SergejK
相关产品推荐
相关产品推荐

