恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Trivy `plugin run` 命令完全指南:按需安装并运行插件的实战解析

  • 首页
  • 资讯中心
  • /
  • Trivy `plugin run` 命令完全指南:按需安装并运行插件的实战解析

相关资讯

AIRI 接入 Fireworks AI:OpenAI 兼容聊天提供者的配置指南 2026/9/10 12:20:49
【环境配置】解决linux每次打开终端都需要source .bashrc文件的问题 2026/9/10 12:15:48
CANN/ge LLM-DataDist Python专题指南 2026/9/10 12:15:48

最新资讯

Impeccable 原生设计适配实战:用 iOS / Android 平台惯例重构体验而非缩放像素
临时文件自动化管理:原理、技术与实践
物流业应对90%高退货率:逆向物流优化与电商协作策略
V++语言:高性能系统编程的创新与实践
oh-my-claudecode 的 ultragoal 怎么在没有活动执行循环时维护持久化目标账本?
rclone WebDAV 后端全解析:从交互式配置到供应商差异与协议级实现

今日推荐

AI搜索重构内容生态:企业从“流量争夺”转向“答案共建”
AI搜索的信任缺口:企业内容如何在答案时代自证可信
Spring Boot+Vue+Node.js售后服务系统开发实战

本周热门

超人会飞不算本事:系统稳定依赖清晰规则与边界设计
超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论
基于CNN的调制信号识别:MATLAB实现时频图分类实战

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

Trivy `plugin run` 命令完全指南:按需安装并运行插件的实战解析

发布时间:2026/9/10 12:20:49
Trivy `plugin run` 命令完全指南:按需安装并运行插件的实战解析 Trivyplugin run命令完全指南按需安装并运行插件的实战解析【免费下载链接】trivyFind vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more项目地址: https://gitcode.com/GitHub_Trending/tr/trivyTrivy 的trivy plugin run子命令用于按需运行Run a plugin on the fly插件只需一条命令即可完成插件的下载、安装与执行无需事先执行trivy plugin install。本指南以 trivy_plugin_run.md 为核心骨架结合 pkg/plugin/manager.go、pkg/plugin/plugin.go 与 pkg/commands/app.go 等源码详细讲解该命令的语法、参数、执行流程与底层实现原理帮助读者在实际扫描场景中灵活运用。命令总览与语法trivy plugin run的完整语法为trivy plugin run NAME | URL | FILE_PATHNAME已注册在插件索引中的插件名例如kubectl、referrer、countURL插件源码或归档的远程地址例如 Git 仓库地址、HTTP/HTTPS 下载链接、S3 或 GCS 对象存储链接FILE_PATH本地插件包路径例如./myplugin.tar.gz。该命令还支持别名r因此trivy plugin run与trivy plugin r等价见 pkg/commands/app.go 中Aliases: []string{r}的定义。从源码定义看run子命令要求至少一个位置参数cobra.MinimumNArgs(1)其中args[0]作为插件来源名称/URL/文件路径args[1:]全部透传给插件本体作为插件的参数。RunE: func(cmd *cobra.Command, args []string) error { return manager.Run(cmd.Context(), args[0], plugin.Options{ Args: args[1:], Insecure: pluginOptions.Insecure, }) },这一点非常关键run后面的所有内容第一个 token 被 Trivy 用来定位插件其余全部原样交给插件进程处理。选项Options本命令专属选项run子命令本身只暴露一个帮助选项-h, --help help for run继承自父命令的全局选项与 Trivy 其他子命令一致trivy plugin run同样继承全局选项实际生效值以配置为准--cacert string Path to PEM-encoded CA certificate file --cache-dir string cache directory (default /path/to/cache) -c, --config string config path (default trivy.yaml) -d, --debug debug mode --generate-default-config write the default config to trivy-default.yaml --insecure allow insecure server connections -q, --quiet suppress progress bar and log output --timeout duration timeout (default 5m0s) -v, --version show version其中与插件运行直接相关的有两个--insecure允许不安全的服务器连接。在 pkg/commands/app.go 中该选项被直接注入plugin.Options.Insecure进而传递给下载器downloader.Options{Insecure: opts.Insecure}见 pkg/plugin/manager.go。当插件仓库或执行文件托管在自签名 TLS 证书的私有服务器上时需要开启此选项。--debug输出调试日志。下载插件、加载元数据、选择平台、下载执行文件等关键步骤均带有DebugContext日志见 pkg/plugin/manager.go 与 pkg/plugin/plugin.go排查安装失败时非常有用。支持的插件来源类型run与install共享同一套下载逻辑。从源码看插件的获取经由downloader.DownloadToTempDir见 pkg/plugin/manager.go底层基于 go-getter因此支持以下协议见 docs/guide/plugin/user-guide.mdOCI 镜像仓库OCI Registries本地文件Local FilesGit 仓库GitHTTP/HTTPSMercurialAmazon S3Google Cloud Storage例如# 通过索引名 trivy plugin run kubectl # 通过 Git 仓库 trivy plugin run github.com/aquasecurity/trivy-plugin-kubectl # 通过 HTTP 下载的归档 trivy plugin run https://github.com/aquasecurity/trivy-plugin-kubectl/archive/refs/heads/main.zip # 通过本地文件 trivy plugin run ./myplugin.tar.gz对于托管在 Git 仓库且正确打了v前缀语义化版本标签的插件还可以指定版本号trivy plugin run referrerv0.3.0这一vversion语法在 pkg/plugin/manager.go 的parseArg中实现先用strings.Cut(arg, v)切分再用 semver 校验版本合法性只有版本号符合语义化版本规范时才按版本安装否则整个字符串被当作普通来源处理最终转换为name?refvversion形式传给 go-getter。按需运行的工作流程与底层实现trivy plugin run的核心逻辑是Manager.Run见 pkg/plugin/manager.gofunc (m *Manager) Run(ctx context.Context, name string, opts Options) error { plugin, err : m.Install(ctx, name, opts) if err ! nil { return xerrors.Errorf(plugin install error: %w, err) } if err plugin.Run(ctx, opts); err ! nil { return xerrors.Errorf(unable to run %s plugin: %w, plugin.Name, err) } return nil }整个流程分三步安装Install调用Manager.Install定位插件来源去重检查isInstalledInstall内部会先检查插件是否已安装。若插件已存在于插件缓存中直接跳过下载安装步骤仅打印The plugin is already installed日志见 pkg/plugin/manager.go。判断依据是plugin.Repository url (version || plugin.Version version)见 pkg/plugin/manager.go即同一仓库来源且未指定版本或版本一致视为已安装执行Run调用plugin.Run(ctx, opts)真正启动插件进程。安装细节在install阶段见 pkg/plugin/manager.go将来源下载到临时目录DownloadToTempDir若归档内仅含一个目录如 GitHub 分支归档自动进入该子目录打开plugin.yaml读取插件元数据decodeMetadata要求name字段非空将插件复制到插件根目录默认~/.trivy/plugins下的plugin-name子目录并把plugin.yaml一并写入依据平台选择逻辑下载执行文件。执行细节Plugin.Run见 pkg/plugin/plugin.go通过exec.CommandContext启动插件二进制并将参数opts.Args原样传入标准输入/输出/错误重定向到 Trivy 自身进程环境变量继承自 Trivy 进程cmd.Env os.Environ()。若插件进程以非零状态退出Trivy 会将退出码转换为types.ExitError传递出去从而保留插件自身的退出码语义例如--exit-code 1这类由插件解析的参数依然有效。平台选择规则在执行前Trivy 会根据当前GOOS/GOARCH与plugin.yaml中platforms列表匹配执行文件见 pkg/plugin/plugin.go若selector为空未指定直接使用该平台若os、arch均匹配当前平台命中若os匹配且未限定更具体的arch也命中若无任何匹配返回platform not found错误并退出。匹配失败时提示与插件自身无关属于 manifest 平台声明缺失问题需在插件仓库的plugin.yaml中补充对应平台的selector。典型使用示例在 docs/guide/plugin/user-guide.md 中给出了按需运行的标准用法trivy plugin run kubectl pod your-pod -- --exit-code 1这里kubectl被安装并立即执行pod your-pod -- --exit-code 1被透传给插件。--之后的部分在多数插件约定中用于分隔 Trivy 自身参数与扫描参数。再例如运行输出类插件counttrivy plugin run count --published-after 2023-10-01该插件用于统计扫描结果数量接收透传参数--published-after。由于run与install复用同一安装逻辑也可以直接指定 URLtrivy plugin run github.com/aquasecurity/trivy-plugin-kubectl与install 直接调用的对比trivy plugin run与先install再以子命令调用两种方式在效果上等价但适用场景不同场景推荐方式说明一次性使用、不想污染插件缓存trivy plugin run name虽然run也会写入缓存但免去手动两步操作频繁使用trivy plugin install name后直接trivy name安装后插件会以子命令形式出现在trivy --help的 Plugin Commands 中省略子命令前缀设置环境变量TRIVY_RUN_AS_PLUGINname见 docs/guide/plugin/user-guide.md另外插件缓存目录遵循 XDG 规范查找顺序为XDG_DATA_HOME下存在.trivy/plugins时优先否则回退到~/.trivy/plugins见 pkg/plugin/manager.go 中dir()的实现。相关命令trivy plugin run是 Trivy 插件管理命令族的一员与之配套的命令还有trivy plugin install安装插件run的内部第一步即调用同一安装逻辑trivy plugin list列出已安装插件trivy plugin info查看指定插件的详细信息trivy plugin search在插件索引中检索可用插件trivy plugin update更新本地插件索引副本trivy plugin upgrade升级已安装插件trivy plugin uninstall卸载插件。各子命令的 CLI 参考文档位于 docs/guide/references/configuration/cli 目录完整的插件用户指南见 docs/guide/plugin/user-guide.md插件开发与plugin.yaml清单格式说明见 docs/guide/plugin/developer-guide.md。小结trivy plugin run将安装 运行合并为一步是临时使用 Trivy 插件最快捷的方式。理解其来源解析 → 缓存去重 → 平台选择 → 进程执行的完整链路对应 pkg/plugin/manager.go 与 pkg/plugin/plugin.go有助于排查安装失败、平台不匹配等问题也能让你更熟练地组合--insecure、--debug等全局选项在私有环境与 CI 流水线中安全高效地扩展 Trivy 的能力。【免费下载链接】trivyFind vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more项目地址: https://gitcode.com/GitHub_Trending/tr/trivy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号