|
|
@@ -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
|
|
|
+
|