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