第三方软件安全-Dependency‑Track Docker 部署

目录

[1. 创建部署目录](#1. 创建部署目录)

[2. 启动服务](#2. 启动服务)

访问地址

[3. 初始化配置重点](#3. 初始化配置重点)

[4. SBOM 上传示例(curl)](#4. SBOM 上传示例(curl))

[5. 常用运维命令](#5. 常用运维命令)

[6. 常见坑点](#6. 常见坑点)

[7. 离线环境说明](#7. 离线环境说明)


Dependency‑Track 是 SBOM 组件漏洞分析工具,官方推荐 docker-compose 一键部署,包含:API 服务、前端、PostgreSQL 数据库。

环境要求

  • Docker & Docker Compose V2
  • 内存建议 ≥4G(扫描依赖、NVD 漏洞库同步很吃内存)
  • 磁盘预留 ≥20G(漏洞库、SBOM 报告存储)

1. 创建部署目录

bash 复制代码
mkdir -p /opt/dependency-track
cd /opt/dependency-track

新建 docker-compose.yml

复制代码
services:
  dtrack-apiserver:
    image: dependencytrack/apiserver:latest
    container_name: dtrack-apiserver
    restart: always
    volumes:
      - ./data:/data
    environment:
      - ALPINE_DATABASE_MODE=external
      - ALPINE_DATABASE_URL=jdbc:postgresql://dtrack-db:5432/dtrack
      - ALPINE_DATABASE_USERNAME=dtrack
      - ALPINE_DATABASE_PASSWORD=dtrack@Passw0rd
      - ALPINE_SECRET_KEY=SuperSecretKey-ChangeMe-12345678
      # 漏洞源代理(内网环境配置)
      # - HTTP_PROXY=http://192.168.x.x:8080
      # - HTTPS_PROXY=http://192.168.x.x:8080
    ports:
      - "8081:8080"
    depends_on:
      dtrack-db:
        condition: service_healthy

  dtrack-frontend:
    image: dependencytrack/frontend:latest
    container_name: dtrack-frontend
    restart: always
    ports:
      - "8080:8080"
    environment:
      - API_BASE_URL=http://dtrack-apiserver:8080
    depends_on:
      - dtrack-apiserver

  dtrack-db:
    image: postgres:15-alpine
    container_name: dtrack-db
    restart: always
    volumes:
      - ./postgres:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=dtrack
      - POSTGRES_USER=dtrack
      - POSTGRES_PASSWORD=dtrack@Passw0rd
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U dtrack -d dtrack"]
      interval: 10s
      timeout: 5s
      retries: 5

⚠️ 生产务必修改: ALPINE_DATABASE_PASSWORD、ALPINE_SECRET_KEY,不要使用示例密码。

2. 启动服务

bash 复制代码
docker compose up -d

查看日志

bash 复制代码
# 看api服务日志,初始化漏洞库时间很久
docker logs -f dtrack-apiserver

访问地址

  • Web 前端:http://服务器IP:8080
  • API 接口:http://服务器IP:8081

默认账号密码

复制代码
用户名:admin
密码:admin

登录第一件事修改 admin 密码。

3. 初始化配置重点

  1. 漏洞数据源同步 登录后进入 Administration → Settings,漏洞源:NVD、OSV、GitHub Advisory Database。 首次同步漏洞库耗时几十分钟,不要重启容器。
  2. API KeyAdministration → Access Keys 创建 key,用于 CI 流水线上传 SBOM。

4. SBOM 上传示例(curl)

生成 SBOM 可以用 cyclonedx-maven、cyclonedx-python 等工具。

bash 复制代码
curl -X POST "http://127.0.0.1:8081/api/v1/bom" \
-H "X-API-Key:你的AccessKey" \
-F "project=项目UUID" \
-F "bom=@./bom.json"

5. 常用运维命令

bash 复制代码
# 停止
docker compose down

# 停止并清理数据(谨慎!)
docker compose down -v

# 升级版本
cd /opt/dependency-track
docker compose pull
docker compose up -d

6. 常见坑点

  1. 服务启动慢:apiserver 第一次启动会初始化数据库 + 拉取 NVD 漏洞库,内存低于 4G 会卡死 OOM。
  2. 前端打不开 :检查 API_BASE_URL,容器内部网络要能访问 apiserver。
  3. 漏洞同步失败 :服务器外网不通,配置HTTP_PROXY代理;内网环境可离线导入 NVD 数据。
  4. PostgreSQL 版本:官方推荐 postgres14~15,不要用 17 高版本。
  5. 数据持久化:./data 和 ./postgres 目录是全部数据,备份直接备份这两个文件夹。

7. 离线环境说明

内网无法访问外网漏洞源:

  1. 在外网机器下载 NVD/OSV 数据;
  2. Dependency‑Track 支持离线镜像导入漏洞数据库;
  3. SBOM 文件可以本地生成后手动页面上传。
相关推荐
砚凝霜15 分钟前
【软考信息安全】第二十一章 网络设备安全概述与安全机制
网络·安全
看着博客敲代码1 小时前
Nmap NSE 资产指纹识别:从脚本输出到资产清单
安全·网络安全·自动化
灯澜忆梦1 小时前
【docker】#4 | Docker 自定义镜像与 Dockerfile
运维·docker·容器
熊出没2 小时前
AI Agent 生产级架构设计:工具调用与MCP、RAG、安全护栏与评估体系
人工智能·安全·架构设计·rag·ai agent
TTATTC2 小时前
Android 浏览器死活不弹证书框的那天,我用 .NET MAUI 给 WebView 写了一个 mTLS 拦截器
docker·开源
TTATTC2 小时前
百万行 Trace 交给 AI,方向和验证留给人,一套还原自定义 VMP 保护的分工方法
docker·开源
TTATTC2 小时前
从 proxy_pass 末尾斜杠到 WebAssembly 预压缩:深挖 Nginx 生产环境四大高频踩坑点
docker·开源
TTATTC2 小时前
消灭 AI 编程助手的幻觉代码:拆解 Google 官方文档 MCP 与三大云厂商知识检索架构
docker·开源
山东科恩光电2 小时前
安全地毯材质特性与多场景防护应用及日常维护要点
安全
m0_715674432 小时前
金融数据流转监测排行:从看见到拦截的距离
大数据·网络·安全·网络安全·金融