本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
CodeNarc是一款针对Groovy语言的静态代码分析工具,可检测代码中的风格违规、潜在错误、未使用变量、复杂逻辑等问题,帮助团队提升代码质量。CodeNarc Docker镜像将CodeNarc及其运行依赖(如Groovy环境)封装为容器,用户无需在本地安装配置相关依赖,即可通过Docker快速启动代码分析任务,有效解决环境差异导致的分析结果不一致问题,简化代码质量检查流程。
codenarc.xml),灵活定义团队代码规范,满足个性化检查需求。拉取镜像
从Docker仓库拉取CodeNarc镜像(以下示例假设镜像名为codenarc:latest,实际使用时需替换为具体仓库地址):
docker pull codenarc:latest
运行基础代码分析
分析本地Groovy代码目录,使用默认规则输出结果到控制台:
docker run --rm -v "$(pwd)/src/main/groovy:/code" codenarc:latest --source /code
--rm:容器运行后自动删除,避免残留容器文件。-v "$(pwd)/src/main/groovy:/code":将本地Groovy代码目录(示例为当前目录下的src/main/groovy)挂载到容器内的/code路径(容器内固定分析目录)。--source /code:指定CodeNarc分析的源代码目录(需与容器内挂载路径一致)。若需使用团队自定义规则,将本地规则文件(如./config/codenarc.xml)挂载到容器,并通过--rulesetfiles参数指定:
docker run --rm \ -v "$(pwd)/src/main/groovy:/code" \ -v "$(pwd)/config/codenarc.xml:/config/codenarc.xml" \ codenarc:latest \ --source /code \ --rulesetfiles file:/config/codenarc.xml
file:/config/codenarc.xml:容器内规则文件路径,需与挂载路径对应。指定输出HTML报告到本地目录(如./reports),便于直观查看分析结果:
docker run --rm \ -v "$(pwd)/src/main/groovy:/code" \ -v "$(pwd)/reports:/reports" \ codenarc:latest \ --source /code \ --report html:/reports/codenarc-report.html
执行后,报告将生成在本地./reports/codenarc-report.html,可通过浏览器打开查看详细分析结果(含违规代码位置、规则说明等)。
通过--maxPriority1Violations等参数设置严重违规数量阈值,超过阈值时容器返回非0退出码,触发CI流程中断:
docker run --rm \ -v "$(pwd)/src/main/groovy:/code" \ codenarc:latest \ --source /code \ --maxPriority1Violations 0 # 不允许优先级1(严重)违规 --maxPriority2Violations 5 # 允许最多5个优先级2(中等)违规
CodeNarc支持多种命令行参数,常用参数如下:
| 参数 | 说明 |
|---|---|
--source <path> | 必选,指定容器内待分析的源代码目录路径(需通过-v挂载本地目录)。 |
--rulesetfiles <paths> | 可选,指定规则配置文件路径(多个文件用逗号分隔),默认使用内置基础规则。 |
--report <format:path> | 可选,指定报告格式及路径,支持html/xml/text/console等格式。 |
--maxPriority1Violations <num> | 可选,优先级1(严重)违规的最大允许数量,超过返回非0退出码。 |
--maxPriority2Violations <num> | 可选,优先级2(中等)违规的最大允许数量,超过返回非0退出码。 |
--maxPriority3Violations <num> | 可选,优先级3(轻微)违规的最大允许数量,超过返回非0退出码。 |
规则配置文件(codenarc.xml)用于定义检查规则,示例结构如下:
<?xml version="1.0"?> <codenarc> <ruleset name="My Project Rules"> <!-- 禁止未使用变量 --> <rule class="org.codenarc.rule.unused.UnusedVariableRule" priority="2"/> <!-- 禁止空catch块 --> <rule class="org.codenarc.rule.exceptions.EmptyCatchBlockRule" priority="1"/> <!-- 方法最大行数限制(自定义参数) --> <rule class="org.codenarc.rule.size.MethodSizeRule" priority="3"> <property name="maxLines" value="50"/> <!-- 方法最大行数为50行 --> </rule> </ruleset> </codenarc>
更多规则及配置细节可参考CodeNarc官方文档。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429