services:
  devcontainer:
    container_name: frigate-devcontainer
    # Check host system's actual render/video/plugdev group IDs with 'getent group render', 'getent group video', and 'getent group plugdev'
    # Must add these exact IDs in container's group_add section or OpenVINO GPU acceleration will fail
    group_add:
      - "109" # render
      - "110" # render
      - "44"  # video
      - "46"  # plugdev
    shm_size: "256mb"
    build:
      context: .
      dockerfile: docker/main/Dockerfile
      # Use target devcontainer-trt for TensorRT dev
      target: devcontainer
      cache_from:
        - ghcr.io/blakeblackshear/frigate:cache-amd64
    ## Uncomment this block for nvidia gpu support
    # deploy:
    #       resources:
    #           reservations:
    #               devices:
    #                   - driver: nvidia
    #                     count: 1
    #                     capabilities: [gpu]
    environment:
      YOLO_MODELS: ""
    # devices:
      # - /dev/bus/usb:/dev/bus/usb # Uncomment for Google Coral USB
      # - /dev/dri:/dev/dri # for intel hwaccel, needs to be updated for your hardware
    volumes:
      - .:/workspace/frigate:cached
      - ./web/dist:/opt/frigate/web:cached
      - /etc/localtime:/etc/localtime:ro
      - ./config:/config
      - ./debug:/media/frigate
     # - /dev/bus/usb:/dev/bus/usb # Uncomment for Google Coral USB
  mqtt:
    container_name: mqtt
    image: eclipse-mosquitto:2.0
    command: mosquitto -c /mosquitto-no-auth.conf # enable no-auth mode
    ports:
      - "1883:1883"