networks:
  default:
    name: argus-debug-net
    external: true

services:
  ftp:
    image: argus-metric-ftp:latest
    container_name: argus-ftp
    restart: unless-stopped
    environment:
      - TZ=Asia/Shanghai
      - FTP_BASE_PATH=/private/argus/ftp
      - FTP_PASSWORD=${FTP_PASSWORD:-ZGClab1234!}
      - DOMAIN=${FTP_DOMAIN:-ftp.metric.argus.com}
      - ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133}
      - ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015}
    ports:
      - "${FTP_PORT:-21}:21"
      - "${FTP_DATA_PORT:-20}:20"
      - "21100-21110:21100-21110"
    volumes:
      - ${DATA_ROOT:-/private}/argus/metric/ftp:/private/argus/ftp
      - ${DATA_ROOT:-/private}/argus/etc:/private/argus/etc
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
    networks:
      default:
        ipv4_address: 172.30.0.40
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

  prometheus:
    image: argus-metric-prometheus:latest
    container_name: argus-prometheus
    restart: unless-stopped
    environment:
      - TZ=Asia/Shanghai
      - PROMETHEUS_BASE_PATH=/private/argus/metric/prometheus
      - ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133}
      - ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015}
    ports:
      - "${PROMETHEUS_PORT:-9090}:9090"
    volumes:
      - ${DATA_ROOT:-/private}/argus/metric/prometheus:/private/argus/metric/prometheus
      - ${DATA_ROOT:-/private}/argus/etc:/private/argus/etc
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
    networks:
      default:
        ipv4_address: 172.30.0.41
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

  grafana:
    image: argus-metric-grafana:latest
    container_name: argus-grafana
    restart: unless-stopped
    environment:
      - TZ=Asia/Shanghai
      - GRAFANA_BASE_PATH=/private/argus/metric/grafana
      - ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133}
      - ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015}
      - GF_SERVER_HTTP_PORT=3000
      - GF_LOG_LEVEL=warn
      - GF_LOG_MODE=console
    ports:
      - "${GRAFANA_PORT:-3000}:3000"
    volumes:
      - ${DATA_ROOT:-/private}/argus/metric/grafana:/private/argus/metric/grafana
      - ${DATA_ROOT:-/private}/argus/etc:/private/argus/etc
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
    networks:
      default:
        ipv4_address: 172.30.0.42
    depends_on:
      - prometheus
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

  test-node:
    image: argus-metric-test-node:latest
    container_name: argus-metric-test-node
    hostname: test-metric-node-001
    restart: unless-stopped
    privileged: true
    depends_on:
      - ftp
      - prometheus
    environment:
      - TZ=Asia/Shanghai
      - DEBIAN_FRONTEND=noninteractive
      - FTP_DOMAIN=${FTP_DOMAIN:-ftp.metric.argus.com}
      - FTP_SERVER=${FTP_SERVER:-172.30.0.40}
      - FTP_USER=${FTP_USER:-ftpuser}
      - FTP_PASSWORD=${FTP_PASSWORD:-ZGClab1234!}
      - FTP_PORT=${FTP_PORT:-21}
    volumes:
      - ${DATA_ROOT:-/private}/argus/agent:/private/argus/agent
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
    command: sleep infinity
    networks:
      default:
        ipv4_address: 172.30.0.50
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

  test-gpu-node:
    image: argus-metric-test-gpu-node:latest
    container_name: argus-metric-test-gpu-node
    hostname: test-metric-gpu-node-001
    restart: unless-stopped
    privileged: true
    runtime: nvidia
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: 
                - gpu
    depends_on:
      - ftp
      - prometheus
    environment:
      - TZ=Asia/Shanghai
      - DEBIAN_FRONTEND=noninteractive
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=compute,utility
      - GPU_MODE=gpu
    volumes:
      - ${DATA_ROOT:-/private}/argus/agent:/private/argus/agent
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
    command: sleep infinity
    networks:
      default:
        ipv4_address: 172.30.0.51
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

