
licensefinder/license_finderPivotal License Finder 是一款专注于开源许可证合规性管理的工具镜像,基于Ruby开发,旨在自动识别项目依赖项的许可证信息,帮助开发团队和企业确保使用的开源组件符合内部合规策略及外部***要求。该镜像集成了许可证扫描引擎、依赖解析器和报告生成模块,支持主流开发语言和构建工具,可无缝集成到开发和CI/CD流程中。
通过挂载项目目录到容器,执行基础扫描并生成默认报告:
bashdocker run -v /本地项目路径:/project pivotal/license-finder analyze /project
注:
/本地项目路径需替换为实际项目根目录路径,容器会自动识别项目类型并扫描依赖
使用--format参数指定报告格式,--output指定输出路径:
bash# 生成HTML报告(默认格式) docker run -v /本地项目路径:/project pivotal/license-finder analyze /project --format html --output /project/license-report.html # 生成JSON报告(便于机器解析) docker run -v /本地项目路径:/project pivotal/license-finder analyze /project --format json --output /project/license-report.json
通过项目根目录下的license_finder.yml配置文件定义合规规则,示例配置:
yaml# license_finder.yml allowed_licenses: - MIT - Apache-2.0 - BSD-3-Clause ignored_dependencies: - name: "低风险内部依赖包" # 忽略特定依赖 version: "1.0.0" ignored_licenses: - "LicenseRef-Proprietary" # 忽略私有许可证
挂载配置文件并应用策略:
bashdocker run -v /本地项目路径:/project -v /本地配置路径/license_finder.yml:/project/license_finder.yml pivotal/license-finder analyze /project --config /project/license_finder.yml
| 参数名 | 描述 | 可选值 | 默认值 |
|---|---|---|---|
--format | 报告输出格式 | html, json, csv, text | html |
--output | 报告输出文件路径 | 容器内绝对路径 | /project/license_report.html |
--config | 自定义配置文件路径 | 容器内配置文件路径 | /project/license_finder.yml |
--cache-dir | 依赖元数据缓存目录 | 容器内目录路径 | /root/.license_finder/cache |
--fail-on | 触发失败的条件 | none, non-allowed, unknown | non-allowed |
通过环境变量调整容器运行参数:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
LOG_LEVEL | 日志级别 | info |
HTTP_PROXY | HTTP代理地址(用于访问外部包仓库) | 无 |
HTTPS_PROXY | HTTPS代理地址 | 无 |
NO_PROXY | 无需代理的域名列表 | localhost,127.0.0.1 |
创建docker-compose.yml实现配置持久化和简化操作:
yamlversion: '3.8' services: license-scan: image: pivotal/license-finder volumes: - ./my-project:/project # 挂载项目目录 - ./config:/config # 挂载配置文件目录 - cache-volume:/root/.license_finder/cache # 持久化缓存 environment: - LOG_LEVEL=debug - HTTPS_PROXY=[***] command: > analyze /project --config /config/license_finder.yml --format json --output /project/reports/license.json --fail-on non-allowed volumes: cache-volume: # 缓存卷用于加速重复扫描
通过命令行参数临时忽略单个依赖(需指定名称和版本):
bashdocker run -v /本地项目路径:/project pivotal/license-finder analyze /project --ignore "dependency-name:1.2.3"
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务