第三方软件安全-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_PASSWORDALPINE_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 文件可以本地生成后手动页面上传。
相关推荐
AImatters1 小时前
国产算力底座,支撑油气储运数字化迈过关键分水岭
安全·cpu·算力·海光·油气储运
harmony&1 小时前
Docker 容器技术从入门到实战:容器、网络、存储与监控全解析
docker·云原生
叠叠乐4 小时前
中国移动家庭云电脑window关闭所有安全脚本
安全
IT大白鼠4 小时前
Docker 私有仓库管理:Harbor 企业级仓库搭建与镜像全生命周期管理
运维·docker·容器
Jmyd01234 小时前
实训室的 3D 模型涉及肖像文物,数据安全与合规怎么做?
安全·3d·数据安全·虚拟实训
芯盾时代4 小时前
《金融业网络安全管理办法(征求意见稿)》全条款深度拆解(三)
网络·安全·网络安全
敢敢是只喵i5 小时前
一个本地 AI Agent 要操作多个门店或 SaaS 账号,应该怎样安全切换身份?
人工智能·安全·ai·系统架构·业界资讯
Acrel12345 小时前
DC800V 大规模落地,算力机房安全该如何保障
安全
其实防守也摸鱼6 小时前
权限提升与横向移动:从内网渗透到域控的完整技术图谱
运维·服务器·数据库·安全·github·copilot·渗透