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

从源码构建 Deepfence ThreatMapper:本地编译容器镜像、启动管理控制台与镜像发布全指南

  • 首页
  • 资讯中心
  • /
  • 从源码构建 Deepfence ThreatMapper:本地编译容器镜像、启动管理控制台与镜像发布全指南

相关资讯

Apache OpenDAL Haskell Binding 实战:用 Haskell 统一访问 50+ 存储服务 2026/10/13 3:00:45
Bresenham画圆算法:整数微分与八分对称的嵌入式图形实现 2026/10/13 2:55:45
Agent沙箱设计实战:轻量级隔离环境搭建与四大边界控制 2026/10/13 2:55:45

最新资讯

Linux网络基础:从ip命令到网关DNS的排障实战
OSPF选路不换路?一文讲透带宽与COST值计算原理及排错实战
内核态与用户态:从原理到性能优化实战
内核态与用户态深度解析:系统调用、上下文切换与性能调优实战
内核态与用户态深度解析:系统调用、上下文切换与性能优化实战
Linux部署Django大型商城:从环境规划到Gunicorn与Nginx完整实战

今日推荐

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析
CAN总线错误处理机制深度解析:从位错误到Bus Off的硬件级调试

本周热门

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

从源码构建 Deepfence ThreatMapper:本地编译容器镜像、启动管理控制台与镜像发布全指南

发布时间:2026/10/13 3:00:45
从源码构建 Deepfence ThreatMapper:本地编译容器镜像、启动管理控制台与镜像发布全指南 网络安全应用安全云原生漏洞扫描【免费下载链接】ThreatMapperOpen Source Cloud Native Application Protection Platform (CNAPP)项目地址https://gitcode.com/gh_mirrors/th/ThreatMapper点击查看免费下载本文是 ThreatMapper 官方文档《Build from Source》的深度实战解读。ThreatMapper 是一款开源云原生应用保护平台CNAPP用于运行时威胁发现、攻击路径枚举与漏洞优先级排序。读完本文你将掌握如何在一台满足最低配置的构建机上从源码一键产出全套容器镜像、如何用 docker-compose 在本地拉起 Deepfence Management Console 并注册首个用户以及如何把构建产物推送到自己的远程镜像仓库如 DockerHub完成多主机分发。一、构建前的准备硬件、软件与 Docker 权限官方文档首先明确了构建主机Build host的最低要求这是能否顺利跑完整套构建流程的关键前提项目最低要求说明内存16 GB RAM构建并运行 Management Console 的最低内存CPU4 核编译 Go 二进制、前端产物与多个容器镜像需要足够并行度软件包build tools、golang、docker、docker-compose编译工具链与容器运行环境仓库中与这一要求相互印证的是 install.sh 里的预检逻辑Docker 部署模式会调用check_docker_requirements强制校验nproc≥ 4 且可用内存 ≥ 16 GB不满足直接退出Kubernetes 部署模式则要求至少 3 个节点、每个节点 4 核 8 GB见check_kubernetes_node_requirementsinstall.sh。可见 16 GB / 4 核并非官方文档的随意估算而是安装脚本中硬编码的硬性门槛。如果当前用户不在docker组中需要先授权并让组变更生效sudo usermod -aG docker $USER # 重新开一个 shell或执行 su $USER 让组变更生效提示构建过程会大量调用docker run、docker build、docker push确保当前用户具备 Docker 守护进程的操作权限是第一步。二、一键构建make到底帮你做了什么官方文档给出的核心构建命令只有三条git clone https://github.com/deepfence/ThreatMapper.git cd ThreatMapper make但背后是一条相当复杂的构建流水线。仓库根目录的 Makefile 定义了完整的依赖链其中最关键的一段是default: bootstrap console_plugins agent console fargate-local # Makefile#L28 console: redis postgres kafka-broker router server worker ui file-server graphdb jaeger # Makefile#L31 console_plugins: secretscanner malwarescanner packagescanner compliancescanner # Makefile#L34也就是说一条make命令实际展开为 5 大阶段bootstrap执行 bootstrap.sh其内容为git submodule update --init --recursive --remote递归拉取并更新仓库的全部 Git 子模块agent 依赖的第三方组件即通过子模块方式引入console_plugins构建 4 个扫描插件镜像 —— SecretScanner密钥扫描、YaraHunter恶意软件扫描、package-scanner软件包/漏洞扫描、compliance合规扫描agent构建传感器代理相关镜像依赖debian_builder、deepfenced与console_pluginsconsole构建管理控制台的 9 个组件镜像fargate-local从 agent 镜像中导出可执行二进制并打包成 tar.gz供 AWS Fargate 等场景使用。2.1 可调构建参数Makefile 顶部集中定义了构建参数全部支持命令行覆盖make IMAGE_REPOSITORYxxx DF_IMG_TAGyyy变量默认值作用IMAGE_REPOSITORYquay.io/deepfenceio镜像仓库前缀决定所有产物的仓库地址DF_IMG_TAGlatest构建产物镜像标签VERSIONv2.5.8注入到二进制中的版本号当前仓库对应版本IS_DEV_BUILDfalse是否为开发构建影响 router 镜像构建参数STEAMPIPE_IMG_TAG0.23.x合规扫描器依赖的 Steampipe 镜像标签注意官方文档推送示例中使用的是deepfenceio/$IMG前缀对应 DockerHub而当前仓库 Makefile 的默认IMAGE_REPOSITORY为quay.io/deepfenceiodeployment-scripts/docker-compose.yml 中的镜像默认值同样是quay.io/deepfenceio标签默认2.5.8。实际构建时以你传入的IMAGE_REPOSITORY为准。2.2 两个“构建器”镜像alpine 与 debian构建流程会先制作两个编译环境镜像builder image所有 Go 代码编译都在其中进行因此宿主机只要装了 Docker对本地 Go 工具链版本并不敏感alpine_builderdeepfence_builder_ce基于golang:1.25-alpine3.23通过 docker_builders/Dockerfile-alpine 构建。镜像内预装 git、make、libpcap、YARA 4.5.5VirusTotal 规则引擎--enable-magic --enable-cuckoo配置、Hyperscanvectorscan以及 asynq 工具用于编译 agent 侧代码debian_builderdeepfence_glibc_builder_ce基于golang:1.25-trixie通过 docker_builders/Dockerfile-debian 构建预装 build-essential、libjansson、libmagic、protoc 及 protoc-gen-go 等用于编译需要 glibc 动态链接的 server / worker 二进制。2.3 Console 组件镜像清单console目标共产出 9 个镜像每个镜像都对应仓库中的独立模块与独立构建 target详见 Makefile镜像名源码/构建入口组件职责从源码结构看deepfence_redis_cedeepfence_redisRedis 缓存与异步任务队列deepfence_postgres_cedeepfence_postgresPostgreSQL 用户/任务等元数据存储deepfence_kafka_broker_cedeepfence_kafkaKafka 消息中间件承载 Agent 上报数据deepfence_router_cehaproxy前端路由/反向代理HAProxydeepfence_server_cedeepfence_server管理控制台后端 API 服务deepfence_worker_cedeepfence_worker异步任务执行与数据入库deepfence_ui_cedeepfence_frontendWeb 前端Vite ReactNginx 托管deepfence_file_server_cedeepfence_file_server文件服务漏洞库、报告、SBOM 托管deepfence_neo4j_cedeepfence_neo4jNeo4j 图数据库ThreatGraph 拓扑存储其中jaeger目标额外产出deepfence_telemetry_ce基于 deepfence_telemetry用于链路追踪。2.4 源码级细节版本号如何注入二进制以 server 为例deepfence_server/Makefile 的image目标先在 glibc builder 容器内编译二进制再打包镜像image: docker run --rm -i -e VERSION${VERSION} -e GIT_COMMIT${GIT_COMMIT} -e BUILD_TIME${BUILD_TIME} \ -v $(ROOT_MAKEFILE_DIR):/src:rw -v /tmp/go:/go:rw \ $(IMAGE_REPOSITORY)/deepfence_glibc_builder_ce:$(DF_IMG_TAG) \ bash -c cd /src/deepfence_server make deepfence_server docker build -f ./Dockerfile -t $(IMAGE_REPOSITORY)/deepfence_server_ce:$(DF_IMG_TAG) ..编译时通过-ldflags把Version、Commit、BuildTime注入到github.com/deepfence/ThreatMapper/deepfence_server/pkg/constants包deepfence_server/Makefile这正是管理控制台关于/版本页面数据来源。worker 采用同样的机制注入到 deepfence_worker/utils 包而 deepfence_bootstrapper/Makefile 则用CGO_ENABLED0静态编译 agent 引导程序并可选upx压缩体积。2.5 Agent 与插件镜像的构建链Agent 侧构建集中在 deepfence_agent/build.sh依次完成编译getCloudInstanceId→ 编译deepfence_shipper数据上报器→ 编译discovery基于 weaveworks scope 的拓扑发现→ 构建deepfence_cluster_agent_ce→ 构建deepfence_agent_ce。其中 agent 主镜像deepfence_agent/Dockerfile会通过COPY --fromsecret_build / ...等阶段引用 secretscanner、packagescanner、malwarescanner、compliancescanner 四个插件镜像把 SecretScanner、YaraHunter、syft、package-scanner、compliance 等扫描组件集成进 Agent同时从 downloads 阶段拷贝 docker / vessel / nerdctl / crictl 运行时工具。构建完成后所有镜像都会存入本地 Docker 仓库docker images即可查看make不会自动推送推送动作见第四节。三、在本地运行 Deepfence Management Console镜像构建完成后即可在本地拉起整套管理控制台cd ThreatMapper/deployment-scripts docker-compose -f docker-compose.yml up --detach该 Compose 文件deployment-scripts/docker-compose.yml定义的完整服务栈包括deepfence-postgres、deepfence-redis、deepfence-neo4j、deepfence-kafka-broker、deepfence-server、deepfence-worker、deepfence-ingester、deepfence-scheduler、deepfence-ui、deepfence-router、deepfence-file-server、deepfence-telemetry以及自监控的deepfence-console-agentAgent 以network_mode: host、privileged: true方式运行见 docker-compose.yml。文件中还预置了大量可通过环境变量覆盖的配置见 docker-compose.yml 的x-service-variables锚点例如DEEPFENCE_NEO4J_HOST/DEEPFENCE_NEO4J_BOLT_PORTNeo4j 连接地址与 Bolt 端口默认7687DEEPFENCE_POSTGRES_USER_DB_HOST/..._PORT/..._NAMEPostgreSQL 连接参数默认5432/ 库名usersDEEPFENCE_KAFKA_BROKERSKafka 地址默认deepfence-kafka-broker:9092DEEPFENCE_FILE_SERVER_DB_BUCKET/DEEPFENCE_FILE_SERVER_BUCKET文件服务桶配置database桶公开只读托管漏洞数据库default桶存放报告与 SBOMDEEPFENCE_REDIS_HOST/DEEPFENCE_REDIS_PORTRedis 地址默认6379TLS 由DEEPFENCE_REDIS_TLS控制DEEPFENCE_TASKS_CONCURRENCY默认 50、DEEPFENCE_TASKS_MAX_RETRIES默认 3、DEEPFENCE_MAX_SCAN_WORKLOAD默认 5任务并发与扫描负载上限。启动成功后用浏览器访问https://--IP-ADDRESS---/即可进入首次配置页面注册第一个用户后续用户需由管理员邀请。控制台默认使用内部自签 TLS 证书浏览器会提示证书告警可先绕过完整流程见《Initial Configuration》其中还包含注册 License用于下载 ThreatIntel 威胁情报库与获取传感器 Agent API Key 的步骤。停止管理控制台docker-compose -f docker-compose.yml down如需彻底清理不再需要的镜像与数据卷可再执行docker image prune docker volume prune提示官方文档中的镜像标签与 Compose 默认标签均为2.5.8。若你构建时使用了自定义DF_IMG_TAG本地 Compose 启动前需通过环境变量DF_IMG_TAG及需要时的IMAGE_REPOSITORY指向你构建出的标签否则 Compose 会按默认值去拉取远端镜像。四、把镜像推送到远程仓库跨主机分发构建产物只存在于本地 Docker 仓库。如果计划把 Management Console 或传感器deepfence_agent_ce、deepfence_cluster_agent_ce部署到其他主机需要先把镜像推送到一个可访问的远程仓库。官方文档以 DockerHub 为例给出完整脚本ACCmyorg # 你的 dockerhub 账号名 docker login -u $ACC # 登录账号 for IMG in \ deepfence_redis_ce \ deepfence_postgres_ce \ deepfence_kafka_broker_ce \ deepfence_router_ce \ deepfence_file_server_ce \ deepfence_server_ce \ deepfence_worker_ce \ deepfence_ui_ce \ deepfence_agent_ce \ deepfence_cluster_agent_ce \ deepfence_package_scanner_ce \ deepfence_malware_scanner_ce \ deepfence_secret_scanner_ce \ deepfence_neo4j_ce do docker tag deepfenceio/$IMG $ACC/$IMG:latest docker push $ACC/$IMG:latest done对这段脚本结合当前仓库可以给出三条实战补充源镜像前缀要与你构建时一致脚本假设源镜像为deepfenceio/$IMG。若你按 Makefile 默认值quay.io/deepfenceio构建应把docker tag的源改为quay.io/deepfenceio/$IMG或直接用IMAGE_REPOSITORY变量统一管理产物不止这 14 个完整构建还会产出deepfence_telemetry_cejaeger 链路追踪与deepfence_compliance_scanner_ce合规扫描插件如部署环境需要可一并推送仓库内置 publish 目标Makefile 提供了make publish一键发布能力它会按IMAGE_REPOSITORY/DF_IMG_TAG依次docker pushredis、postgres、kafka、router、file-server、server、worker、ui、agent、cluster-agent、各扫描插件、graphdb 与 jaeger 镜像比手写循环更贴合当前仓库的产物集合。推送完成后目标主机即可通过docker pull $ACC/deepfence_server_ce:latest等方式拉取镜像部署传感器的安装方式可参考 deployment-scripts/start-agent.sh 或仓库 README.md 中给出的docker run示例需传入MGMT_CONSOLE_URL、MGMT_CONSOLE_PORT、DEEPFENCE_KEY三个关键环境变量。五、常见问题与排查建议以下排查点均基于仓库源码与配置可验证的事实供构建/启动失败时对照内存或 CPU 不足构建与运行整套控制台需要 16 GB 内存、4 核install.sh 的预检会硬性校验。内存不足时优先关闭无关容器或考虑仅构建部分镜像如make console或单独make server。Docker 权限报错确认当前用户在docker组并已重新登录sudo usermod -aG docker $USER否则所有docker run/build都会失败。子模块拉取失败bootstrap阶段执行git submodule update --init --recursive --remotebootstrap.sh网络受限时可能失败需确保可访问 Git 远端并重试make bootstrap。镜像标签不匹配本地 Compose 启动前检查DF_IMG_TAG与IMAGE_REPOSITORY环境变量是否指向本地构建产物避免意外从远端拉取。控制台证书告警默认使用自签证书属正常现象可在《Initial Configuration》中配置自定义 TLS 证书Docker 方式将.key/.crt放入/etc/deepfence/certs后重启控制台即可。六、开发者进阶从源码到 API 的下一步完成源码构建 → 本地运行 → 镜像发布的闭环后开发者可以继续深入 ThreatMapper 的开发者资源见 docs/docs/developers/index.mdREST API Reference管理控制台暴露的 REST API 说明Python SDK 使用指南基于官方 SDK 编写自动化脚本。如需在 Kubernetes 集群中部署而非单机 Docker可参考仓库中的 Helm Chartsdeployment-scripts/helm-charts/deepfence-console 与 deployment-scripts/helm-charts/deepfence-agent或直接使用 install.sh 提供的-d kubernetes一键安装模式会自动校验节点规格、生成 Neo4j 密码并执行 helm upgrade。赞分享网络安全应用安全云原生漏洞扫描【免费下载链接】ThreatMapperOpen Source Cloud Native Application Protection Platform (CNAPP)项目地址https://gitcode.com/gh_mirrors/th/ThreatMapper点击查看免费下载相关推荐Node.js-Best-Practices进阶使用JSDoc提升代码质量的完整教程Node.js Best Practices进阶使用JSDoc提升代码质量的完整教程 在Node.js开发中编写高质量、可维护的代码是每个开发者的追求。今天CMSaasStarter搜索功能无需后端实现闪电般快速搜索CMSaasStarter搜索功能无需后端实现闪电般快速搜索 CMSaasStarter是一个基于SvelteKit、Tailwind和Supabase构建的人工智能大模型模型推理服务本地部署LLM 网关多模态AI AgentRAGMCP 服务Polar 前端性能实践用战略性 Suspense 边界消除异步阻塞加速首屏渲染Polar 前端性能实践用战略性 Suspense 边界消除异步阻塞加速首屏渲染 导读 在 React 与 Next.js 应用中异步组件在返回 JSX网络安全应用安全云原生漏洞扫描上一篇Switch大气层系统安装避坑指南30分钟从零进系统的最短路径下一篇拯救者性能管理工具上手指南LLT 电源模式、风扇控制与 3 个高频坑创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

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

快速链接

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

服务项目

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

联系方式

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

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