trivy是linux下轻量级独立二进制扫描工具,非插件,可通过curl一键安装并集成ci流水线,支持--light模式加速扫描、--exit-code与--severity协同实现漏洞阻断,适配github actions、gitlab ci、jenkins等平台。

在Linux环境下,Trivy本身不是“插件”,而是一个独立、轻量的二进制扫描工具,但可通过标准方式无缝集成进CI流水线,实现对容器镜像中系统漏洞(如CVE)的自动化扫描与预警。关键不在于安装“Trivy插件”,而在于正确调用Trivy命令、配置阻断策略,并结合CI平台能力触发告警或失败。
快速安装与基础扫描验证
确保Trivy在CI运行节点(如GitHub Actions runner、GitLab Runner或Jenkins agent)上可用:
- 执行一键安装命令:curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin
- 验证安装:trivy --version,应输出类似 Version: 0.45.0
- 首次扫描会自动下载漏洞数据库(约100–200 MB),后续扫描复用本地缓存,速度显著提升
CI中高效扫描:用 --light 模式加速流水线
完整扫描(默认行为)需解压镜像层、提取所有二进制依赖,耗时长、IO高,易导致CI超时。生产级CI推荐启用 --light 模式:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 跳过文件内容分析,仅基于镜像元数据(如 apt list、rpm -qa 输出)和包管理器清单识别已知漏洞
- 命令示例:trivy image --light --severity HIGH,CRITICAL myapp:latest
- 实测提速3–5倍,平均扫描时间稳定在3–8秒,适合高频构建场景
配置漏洞阻断与预警逻辑
仅扫描不够,需让CI根据结果自动响应。核心靠两个参数协同:
- --exit-code 1:当检测到指定严重级别的漏洞时,命令返回非零退出码,使CI步骤失败
- --severity HIGH,CRITICAL:定义触发阻断的漏洞等级(可按团队策略调整为仅 CRITICAL)
- 搭配 --format template --template "@contrib/gitlab.tpl" 或 --format sarif 可生成平台兼容报告,用于UI展示或对接安全看板
主流CI平台集成要点
无需额外“插件”,直接调用trivy命令即可,但要注意环境适配:
- GitHub Actions:使用 aquasecurity/trivy-action@master 封装版更省心,自动处理缓存与权限;若自建job,需先 docker build 镜像,再 trivy image 扫描本地tag
- GitLab CI:推荐直接使用官方镜像 aquasec/trivy:latest,挂载 /var/run/docker.sock 访问本地镜像(或拉取私有仓库镜像)
- Jenkins:在Pipeline中用 sh 步骤执行命令;注意确保Jenkins agent已安装Docker且trivy在PATH中,或用 docker run --rm aquasec/trivy 方式免安装










