Trivy配置扫描无法生成report.json报告,本地及Gitlab CI均异常
Trivy扫描Helm图表无法生成report.json文件的问题排查
问题描述
我使用Trivy扫描Helm图表检测配置错误,但在本地和GitLab CI环境中,执行以下命令无法将report.json写入磁盘:
docker run -v $(pwd):/app aquasec/trivy:latest --severity MEDIUM,HIGH,CRITICAL --output report.json --format json config /app
移除--output参数后,命令能正常运行并返回预期结果。
解决方案
1. 修正命令参数顺序
Trivy的命令遵循trivy [全局参数] <子命令> [子命令参数]的结构,你当前的命令将config子命令放在了输出相关参数之后,导致Trivy无法正确识别输出配置规则。
修正后的正确命令:
docker run -v $(pwd):/app aquasec/trivy:latest config --severity MEDIUM,HIGH,CRITICAL --format json --output report.json /app
调整逻辑:先指定config子命令,再依次添加该子命令的参数( severity、格式、输出路径),最后指定扫描目标/app。
2. 解决权限写入问题(可选)
如果修正顺序后仍无法生成文件,大概率是容器进程没有宿主机目录的写入权限。可以在docker run中添加--user参数,以当前用户身份运行Trivy容器:
docker run -u $(id -u):$(id -g) -v $(pwd):/app aquasec/trivy:latest config --severity MEDIUM,HIGH,CRITICAL --format json --output report.json /app
该参数在GitLab CI环境中同样适用,能避免CI运行用户与容器内用户权限不匹配导致的写入失败。
内容的提问来源于stack exchange,提问作者daveBM
相关产品推荐
相关产品推荐

