Semgrep 是一款开源的静态代码分析工具,通过模式匹配识别代码中的错误、安全漏洞及代码规范问题。Semgrep *** Docker 镜像提供了便捷的容器化部署方式,无需本地安装依赖,即可快速在各类环境中运行代码扫描任务。
注意:Semgrep *** Docker 镜像已迁移至
semgrep/semgrep,旧镜像returntocorp/semgrep可能不再维护,建议使用新镜像地址。
.yaml 格式),适配特定项目需求。通过 docker run 命令启动容器,挂载目标代码目录并执行扫描:
bash# 扫描当前目录代码(默认使用内置规则) docker run --rm -v "${PWD}:/src" semgrep/semgrep semgrep scan
--rm:扫描完成后自动删除容器。-v "${PWD}:/src":将本地当前目录挂载到容器内 /src 目录(Semgrep 默认扫描路径)。semgrep scan:容器内执行的 Semgrep 命令(scan 为默认子命令,可省略)。通过 --config(或 -c)指定***规则集(如安全规则 p/security、代码质量规则 p/quality):
bash# 使用安全规则库扫描当前目录 docker run --rm -v "${PWD}:/src" semgrep/semgrep semgrep scan --config p/security
挂载本地规则文件(如 rules.yaml)并指定路径:
bash# 使用本地自定义规则扫描 docker run --rm -v "${PWD}:/src" -v "${PWD}/rules.yaml:/rules.yaml" semgrep/semgrep semgrep scan --config /rules.yaml
通过 SEMGREP_CONFIG 环境变量指定规则(优先级低于命令行 --config):
bashdocker run --rm -v "${PWD}:/src" -e "SEMGREP_CONFIG=p/security" semgrep/semgrep semgrep scan
通过 --output(或 -o)指定输出文件及格式:
bash# 输出 JSON 格式结果到本地文件 docker run --rm -v "${PWD}:/src" semgrep/semgrep semgrep scan --config p/security --output results.json --format json
创建 docker-compose.yml 文件,定义扫描服务:
yamlversion: '3' services: semgrep-scan: image: semgrep/semgrep volumes: - ./:/src # 挂载目标代码目录 - ./semgrep-rules:/rules # 挂载自定义规则目录(可选) environment: - SEMGREP_CONFIG=/rules # 指定自定义规则路径(若挂载规则目录) - SEMGREP_OUTPUT=results.sarif # 输出 SARIF 格式结果(适配 GitHub Code Scanning) command: semgrep scan --format sarif
启动扫描:
bashdocker-compose up
| 环境变量 | 说明 | 示例值 |
|---|---|---|
SEMGREP_CONFIG | 规则配置路径(同 --config 参数) | p/security 或 /rules |
SEMGREP_IGNORE | 忽略扫描的目录/文件(逗号分隔) | node_modules,dist |
SEMGREP_OUTPUT | 结果输出文件路径 | results.json |
SEMGREP_FORMAT | 输出格式(text/json/sarif) | sarif |
semgrep)无权限访问挂载目录,可通过 --user $(id -u):$(id -g) 调整用户 ID,避免文件权限冲突。docker pull semgrep/semgrep 拉取最新镜像以获取最新规则。p/security)时,容器需联网下载规则,离线环境需提前下载规则文件并本地挂载。更多详情可参考 Semgrep ***文档。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429