Файл docker-compose для запуска Dependency-Track

Обновлено и опубликовано Опубликовано:

В этой инструкции мы разберем небольшой пример docker-compose файла, который поможет запустить панель Dependency-Track для поиска уязвимостей в зависимостях проекта.

За основу мы возьмем сценарий, доступный на официальном сайте, а также на Github.

Пример файла docker-compose

Создадим каталог для хранения файлов сервера и перейдем в него:

mkdir /opt/dtrack && cd /opt/dtrack

Создадим docker-compose файл:

vi docker-compose.yml

name: dtrack

services:

  traefik:
    image: traefik:${TRAEFIK_VER}
    container_name: traefik
    restart: unless-stopped
    command:
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--entrypoints.web.http.redirections.entryPoint.to=websecure"
      - "--entrypoints.web.http.redirections.entryPoint.scheme=https"
      - "--providers.file.directory=/etc/traefik/dynamic"
      - "--providers.file.watch=true"
      - "--ping=true"
    environment:
      TZ: ${TZONE}
      DOCKER_API_VERSION: 1.45
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./traefik/config:/etc/traefik/dynamic:ro
      - /etc/pki/tls/certs:/certs:ro
    healthcheck:
      test: ["CMD-SHELL", "traefik healthcheck --ping"]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 5s

  apiserver:
    image: ghcr.io/dependencytrack/apiserver:${DT_VER}
    container_name: dtrack-apiserver
    hostname: apiserver
    restart: unless-stopped
    depends_on:
      postgres:
        condition: service_healthy
    deploy:
      resources:
        limits:
          memory: 2g
    environment:
      TZ: ${TZONE}
      DT_DATASOURCE_URL: "jdbc:postgresql://postgres:5432/${DB_NAME}"
      DT_DATASOURCE_USERNAME: "${DB_USER}"
      DT_DATASOURCE_PASSWORD: "${DB_PASS}"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.dtrack-back.rule=Host(`${DOMAIN}`) && PathPrefix(`/api/`)"
      - "traefik.http.routers.dtrack-back.entrypoints=websecure"
      - "traefik.http.routers.dtrack-back.tls=true"
      - "traefik.http.services.dtrack-back.loadbalancer.server.port=8080"
    volumes:
      - ./api/data:/data

  frontend:
    image: ghcr.io/dependencytrack/frontend:${DT_VER}
    container_name: dtrack-frontend
    hostname: frontend
    restart: unless-stopped
    environment:
      TZ: ${TZONE}
      API_BASE_URL: "https://${DOMAIN}/api"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.dtrack-front.rule=Host(`${DOMAIN}`)"
      - "traefik.http.routers.dtrack-front.entrypoints=websecure"
      - "traefik.http.routers.dtrack-front.tls=true"
      - "traefik.http.services.dtrack-front.loadbalancer.server.port=8080"
    healthcheck:
      test: ["CMD-SHELL", "curl -f http://127.0.0.1:8080"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 10s

  postgres:
    image: postgres:${DB_VER}
    container_name: dtrack-postgres
    hostname: postgres
    restart: unless-stopped
    environment:
      TZ: ${TZONE}
      POSTGRES_DB: "${DB_NAME}"
      POSTGRES_USER: "${DB_USER}"
      POSTGRES_PASSWORD: "${DB_PASS}"
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
      interval: 5s
      timeout: 3s
      retries: 3
    volumes:
      - ./postgres/data:/var/lib/postgresql

Настройка и запуск

В сценарии используются переменные. Для их определения создаем файл:

vi .env

TZONE=Europe/Moscow

DOMAIN=dtrack.dmosk.ru

TRAEFIK_VER=v3.6

DT_VER=5.0.2

DB_VER=18-alpine
DB_NAME=dtrack
DB_USER=dtrack
DB_PASS=dtrack12345

* актуальную версию для Dependency-Track (DT_VER) можно посмотреть на Dockerhub.

Запускаем наши контейнеры командой:

docker-compose up -d

Периодически выполняем команду:

docker-compose ps

Мы должны дождаться состояния (healthy) для всех контейнеров. После можно переходить на портал по адресу https://<домен портала> (в нашем примере, dtrack.dmosk.ru). Должна открыться страница аутентификации. Вводим admin / admin для входа.

# DevOps # Безопасность # Контейнеризация # Серверы
Дмитрий Моск — частный мастер
Был ли вам полезен этот скрипт?

Да            Нет

Дмитрий Моск
— IT-специалист.
Настройка серверов, услуги DevOps.

Заказать настройку контейнеризации

Нужна бесплатная консультация?

Скрипты

Пример сценария docker-compose для запуска сервера Dependency-Track

Запуск SonarQube Server в контейнере с помощью docker-compose

Пример файла docker-compose для запуска Garage S3

Развертывание N8N в среде контейнеров с помощью docker-compose

Сценарий в docker-compose для запуска Rocket.Chat

Запуск Nextcloud с помощью docker-compose со всем необходимым

Пример скрипта на Python для копирования пакетов NPM с одного репозитория Nexus в другой

Другие скрипты

Все статьи

Нужен скрипт? Опишите его назначение:





Реклама