| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- 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
|