第三方软件安全-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 文件可以本地生成后手动页面上传。
相关推荐
梦梦代码精6 小时前
《回收租赁系统技术选型避坑指南:业务闭环与二开自由度详解》
开发语言·低代码·docker·开源·代码规范
_itgo8 小时前
意图识别落地方案
运维·docker·容器
jimmyleeee10 小时前
大模型安全之五:LLM输出安全
人工智能·安全
Bruce_Liuxiaowei13 小时前
从两个中危漏洞读懂 CVSS 评分体系:向量拆解、数学计算与实战观察
安全·网络安全·漏洞评级
java_logo13 小时前
Docker 部署 ClickHouse Server:轻松搭建列式 OLAP 分析数据库平台
数据库·clickhouse·docker·私有化部署·olap·列式数据库·轩辕镜像
冰块的旅行14 小时前
完整的 Docker + Docker Compose 部署教程亲测有效
docker·容器
许彰午14 小时前
34-安全复盘96个问题
前端·vue.js·安全
乌恩大侠14 小时前
【Sionna】docker build ubuntu cuda
ubuntu·docker·容器·spark·o-ru·ai-ran
数据知道15 小时前
AES 加密实战——模式选择(ECB/CBC/GCM)与安全陷阱
前端·网络·安全
FungLeo15 小时前
成为全栈·Node 后端篇·容器化:给 Node 应用写一个像样的 Dockerfile
docker·node.js·dockerfile·成为全栈·后端服务容器·docker 容器