ARG OUTPUT=/output FROM alpine:3.16 AS builder RUN apk add --no-cache \ autoconf \ automake \ binutils \ cmake \ curl \ dpkg \ file \ gcc \ g++ \ libc6-compat \ git \ libtool \ linux-headers \ make \ musl-dev \ nghttp2-dev \ pkgconfig \ xxd \ libbsd # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FROM builder AS amd ARG CFLAGS ARG LDFLAGS ARG MAKEFLAGS ARG OUTPUT ARG DESTDIR WORKDIR /tmp/amd RUN apk add xf86-video-amdgpu linux-firmware-amdgpu --no-cache --update-cache \ && apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing libva-utils \ && mkdir -p "$OUTPUT/usr/bin" \ && cp -a /usr/bin/vainfo "$OUTPUT/usr/bin" \ && mkdir -p "$OUTPUT/usr/lib" \ && cp -a /usr/lib/libX*.so* "$OUTPUT/usr/lib" \ && cp -a /usr/lib/libwayland*.so* "$OUTPUT/usr/lib" \ && cp -a /usr/lib/libva*.so* "$OUTPUT/usr/lib" \ && cp -a /usr/lib/libdrm*.so* "$OUTPUT/usr/lib" \ && cp -a /usr/lib/libbsd*.so* "$OUTPUT/usr/lib" \ && cp -a /usr/lib/libxshmfence*.so* "$OUTPUT/usr/lib" \ && cp -a /usr/lib/libkms*.so* "$OUTPUT/usr/lib" \ && cp -a /usr/lib/libxcb*.so* "$OUTPUT/usr/lib" \ && cp -a /usr/lib/libffi*.so* "$OUTPUT/usr/lib" \ && cp -a /usr/lib/libLLVM*.so* "$OUTPUT/usr/lib" \ && cp -a /usr/lib/libzstd*.so* "$OUTPUT/usr/lib" \ && cp -a /usr/lib/libexpat*.so* "$OUTPUT/usr/lib" \ && cp -a /usr/lib/libelf*.so* "$OUTPUT/usr/lib" \ && cp -a /usr/lib/libstdc++*.so* "$OUTPUT/usr/lib" \ && cp -a /usr/lib/libgcc_s*.so* "$OUTPUT/usr/lib" \ && cp -a /usr/lib/libmd*.so* "$OUTPUT/usr/lib" \ && cp -a /usr/lib/libxml2*.so* "$OUTPUT/usr/lib" \ && mkdir -p "$OUTPUT/usr/lib/dri" \ && cp -a /usr/lib/dri/*.so* "$OUTPUT/usr/lib/dri" \ && mkdir -p "$OUTPUT/usr/share/libdrm" \ && cp -a /usr/share/libdrm/* "$OUTPUT/usr/share/libdrm" \ && cp -a /lib/ld-musl-x86_64.so.1 "$OUTPUT/usr/lib" \ && cp -a /lib/libz*.so* "$OUTPUT/usr/lib" # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FROM ghcr.io/linuxserver/plex:1.29.0 ARG OUTPUT # Install AMD drivers for HW decoding RUN apt-get update \ && apt-get install -y software-properties-common \ && add-apt-repository ppa:oibaf/graphics-drivers -y \ && wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | apt-key add - \ && echo 'deb [arch=amd64] https://repo.radeon.com/amdgpu/latest/ubuntu focal main' | tee /etc/apt/sources.list.d/rocm.list \ && apt-get update \ && apt-get install -y \ vainfo \ mesa-va-drivers \ mesa-vdpau-drivers \ libdrm-amdgpu1 \ libavutil56 \ amdgpu \ && apt-get clean # Copy lib files COPY --from=amd $OUTPUT/usr/lib/dri/*.so* /usr/lib/plexmediaserver/lib/dri/ COPY --from=amd $OUTPUT/usr/lib/ld-musl-x86_64.so* /usr/lib/plexmediaserver/lib/ COPY --from=amd $OUTPUT/usr/lib/libdrm*.so* /usr/lib/plexmediaserver/lib/ COPY --from=amd $OUTPUT/usr/lib/libelf*.so* /usr/lib/plexmediaserver/lib/ COPY --from=amd $OUTPUT/usr/lib/libffi*.so* /usr/lib/plexmediaserver/lib/ COPY --from=amd $OUTPUT/usr/lib/libgcc_s*.so* /usr/lib/plexmediaserver/lib/ COPY --from=amd $OUTPUT/usr/lib/libkms*.so* /usr/lib/plexmediaserver/lib/ COPY --from=amd $OUTPUT/usr/lib/libLLVM*.so* /usr/lib/plexmediaserver/lib/ COPY --from=amd $OUTPUT/usr/lib/libstdc++*.so* /usr/lib/plexmediaserver/lib/ COPY --from=amd $OUTPUT/usr/lib/libva*.so* /usr/lib/plexmediaserver/lib/ COPY --from=amd $OUTPUT/usr/lib/libxml2*.so* /usr/lib/plexmediaserver/lib/ COPY --from=amd $OUTPUT/usr/lib/libz*.so.* /usr/lib/plexmediaserver/lib/ COPY --from=amd $OUTPUT/usr/lib/libzstd*.so* /usr/lib/plexmediaserver/lib/