adri 1 mēnesi atpakaļ
revīzija
27a64c702f
3 mainītis faili ar 179 papildinājumiem un 0 dzēšanām
  1. 97 0
      Dockerfile
  2. 74 0
      docker-compose.yml
  3. 8 0
      summary/Dockerfile

+ 97 - 0
Dockerfile

@@ -0,0 +1,97 @@
+ARG BASE_VERSION=latest
+
+# Stage 1: Build
+FROM doitandbedone/ispyagentdvr:$BASE_VERSION AS builder
+
+USER root
+
+# Build dependencies
+RUN sed -i 's/# deb-src/deb-src/' /etc/apt/sources.list && \
+    apt update && \
+    apt -y build-dep mesa && \
+    apt install -y git cmake pkg-config libdrm-dev automake libtool \
+    wayland-protocols llvm-15 python3-mako bison flex meson \
+    libxfixes-dev libx11-xcb-dev libxcb-dri3-dev libwayland-dev \
+    libudev-dev libunwind-dev libxcb-keysyms1-dev \
+    libgl1-mesa-dev libva-dev libomxil-bellagio-dev libx264-dev libx265-dev
+
+RUN ln -s /usr/bin/llvm-config-15 /usr/bin/llvm-config
+
+ENV PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig
+ENV LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu
+ENV LIBVA_DRIVER_NAME=radeonsi
+ENV LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri
+ENV XDG_RUNTIME_DIR=/run/user/0
+
+# Build libva
+RUN git clone https://github.com/intel/libva.git && \
+    cd libva && git checkout v2.21-branch && \
+    meson setup build -Dprefix=/usr -Dlibdir=/usr/lib/x86_64-linux-gnu && \
+    ninja -C build && \
+    ninja install -C build
+
+RUN git clone https://github.com/intel/libva-utils.git && \
+    cd libva-utils && git checkout v2.21-branch && \
+    meson setup build -Dprefix=/usr -Dlibdir=/usr/lib/x86_64-linux-gnu && \
+    ninja -C build && \
+    ninja install -C build
+
+RUN git clone https://gitlab.freedesktop.org/mesa/mesa.git && \
+    cd mesa && git checkout 23.2 && \
+    meson setup builddir/ \
+      -Dprefix=/usr \
+      -Dlibdir=/usr/lib/x86_64-linux-gnu \
+      -Dplatforms=x11,wayland \
+      -Dgallium-drivers=auto \
+      -Dvulkan-drivers=auto \
+      -Dbuildtype=release \
+      -Dvideo-codecs=h264dec,h264enc,h265dec,h265enc \
+      -Dgallium-va=enabled && \
+    ninja -C builddir/ && \
+    ninja install -C builddir/
+
+# Stage 2: Runtime
+FROM doitandbedone/ispyagentdvr:$BASE_VERSION
+
+USER root
+
+# Only runtime dependencies
+RUN apt update && apt install -y \
+    libdrm2 \
+    libdrm-amdgpu1 \
+    libdrm-radeon1 \
+    libdrm-nouveau2 \
+    libllvm15 \
+    libwayland-client0 \
+    libwayland-server0 \
+    libx11-6 \
+    libx11-xcb1 \
+    libxcb1 \
+    libxcb-dri3-0 \
+    libxcb-present0 \
+    libxcb-sync1 \
+    libxcb-xfixes0 \
+    libxshmfence1 \
+    libexpat1 \
+    libzstd1 \
+    libelf1 \
+    libunwind8 \
+    linux-firmware &&\
+    apt autoremove -y && \
+    apt clean && \
+    rm -rf /var/lib/apt/lists/*
+
+# Copy built artifacts from builder
+COPY --from=builder /usr/lib/x86_64-linux-gnu/libva* /usr/lib/x86_64-linux-gnu/
+COPY --from=builder /usr/lib/x86_64-linux-gnu/dri/ /usr/lib/x86_64-linux-gnu/dri/
+COPY --from=builder /usr/bin/vainfo /usr/bin/
+
+RUN ldconfig && \
+    groupadd render && \
+    usermod -aG video,render root
+
+ENV LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu
+ENV LIBVA_DRIVER_NAME=radeonsi
+ENV LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri
+ENV XDG_RUNTIME_DIR=/run/user/0
+

+ 74 - 0
docker-compose.yml

@@ -0,0 +1,74 @@
+services:
+  agentdvr:
+    build:
+      context: .
+      args:
+        - BASE_VERSION=7.0.9.0
+    # image: doitandbedone/ispyagentdvr:7.0.9.0
+    # image: mekayelanik/ispyagentdvr:latest
+    container_name: agentdvr
+    networks:
+      - agentdvr
+    restart: always
+    # user: 1101:1101
+    ports:
+      - "8090:8090"
+      - "3478:3478/udp"
+      - "50000-50100:50000-50100/udp"
+    devices:
+      - /dev/video0:/dev/video0
+      - /dev/video1:/dev/video1
+      #- /dev/video2:/dev/video2
+      #- /dev/video10:/dev/video10
+      - /dev/dri:/dev/dri
+    group_add:
+      - 44
+      - 993
+    volumes:
+      - ./Media:/agent/Media
+      - ./XML:/agent/Media/XML
+      - ./Commands:/agent/Commands
+      - ./Overlays:/agent/Overlays
+      - ./Plugins:/agent/Plugins
+      - ./Masks:/agent/Masks
+      - ./sounds:/agent/sounds
+      - /mnt/agent/qshare:/mnt/qshare
+      - /mnt/agent/dvr:/mnt/rshare
+      - /mnt/agent/dvr:/mnt/sshare
+      - /mnt/agent/dvr:/mnt/dvr
+      - /mnt/gshare/agent-archive:/mnt/pshare/agent-archive
+    environment:
+      - TZ=America/New_York
+      - AGENTDVR_WEBUI_PORT=8090
+      - PUID=1101
+      - PGID=9696
+      # - AGENT_CONFIG_PARAM=''
+      # - DEBUG_MODE=True
+    labels:
+      com.centurylinklabs.watchtower.lifecycle.pre-update: "/pre-update.sh"
+#    deploy:
+#      resources:
+#        reservations:
+#          devices:
+#            - driver: nvidia
+#              device_ids: ['0']
+#              capabilities: [gpu]
+
+  agent-summary-listener:
+    build: summary
+    container_name: agent-summary-listener
+    volumes:
+      - ./summary/db:/db
+    networks:
+      - agentdvr
+    environment:
+      - TZ=America/New_York
+      - DB_FILE=/db/agent-summary.db3
+      - MQTT_HOST=iris.dgtlu.net
+      - MQTT_USER=agent
+      - MQTT_PASS=agent
+      - MQTT_TOPIC=agent/summary
+    
+networks:
+  agentdvr:
+    external: true

+ 8 - 0
summary/Dockerfile

@@ -0,0 +1,8 @@
+FROM python:3.13-slim
+WORKDIR /usr/src/app
+# COPY requirements.txt .
+RUN pip install --no-cache-dir paho-mqtt
+COPY main.py .
+RUN mkdir /db
+
+CMD ["python", "-u", "main.py"]