FROM lsiobase/ubuntu:jammy ENV \ LIBVA_DRIVERS_PATH="/usr/lib/x86_64-linux-gnu/dri" \ LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu" \ NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" \ NVIDIA_VISIBLE_DEVICES="all" \ HANDBRAKE=1.7.3 ENV WEB_UI_PORT="8265" SERVER_PORT="8266" NODE_PORT="8267" PUID="1000" PGID="1000" UMASK="002" TZ="Etc/UTC" HOME="/home/Tdarr" # handle deps RUN apt-get update && \ apt-get install -y \ software-properties-common \ git \ trash-cli && \ mkdir -p \ /app \ /logs \ /temp \ "${HOME}" && \ # useradd -u ${PUID} -U -d ${HOME} -s /bin/false Tdarr && \ # usermod -G users Tdarr && \ apt-get update && \ apt-get install -y curl unzip wget comskip \ # for apprise python3-pip && \ pip3 install apprise && \ # MkvToolNIX wget -O /usr/share/keyrings/gpg-pub-moritzbunkus.gpg https://mkvtoolnix.download/gpg-pub-moritzbunkus.gpg && \ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/gpg-pub-moritzbunkus.gpg] https://mkvtoolnix.download/ubuntu/ jammy main" | tee /etc/apt/sources.list.d/mkvtoolnix.download.list && \ echo "deb-src [arch=amd64 signed-by=/usr/share/keyrings/gpg-pub-moritzbunkus.gpg] https://mkvtoolnix.download/ubuntu/ jammy main" | tee -a /etc/apt/sources.list.d/mkvtoolnix.download.list && \ apt-get update && apt-get install -y mkvtoolnix && \ #cc-extractor apt-get install -y \ libglew-dev \ libglfw3-dev \ cmake \ gcc \ libcurl4-gnutls-dev \ tesseract-ocr \ libtesseract-dev \ libleptonica-dev \ clang \ libclang-dev && \ # libgpac-dev && \ git clone https://github.com/CCExtractor/ccextractor.git && \ cd ccextractor/linux && \ git checkout 35e73c1c90ce3ca69394d3523836bb1cdec28f11 && \ ./build -without-rust && \ mv ./ccextractor /usr/bin/ccextractor && \ cd / && rm -rf /ccextractor && \ if uname -m | grep -q x86; then \ # Setup Intel Package Repository curl -sSL https://repositories.intel.com/gpu/intel-graphics.key | \ gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpg && \ echo "deb [arch=amd64,i386 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu jammy client" | \ tee /etc/apt/sources.list.d/intel-gpu-jammy.list && \ apt-get update && \ apt install -y \ intel-opencl-icd \ intel-level-zero-gpu \ level-zero \ intel-media-va-driver-non-free \ libmfx1 \ libmfxgen1 \ libvpl2 \ libegl-mesa0 \ libegl1-mesa \ libegl1-mesa-dev \ libgbm1 \ libgl1-mesa-dev \ libgl1-mesa-dri \ libglapi-mesa \ libgles2-mesa-dev \ libglx-mesa0 \ libigdgmm12 \ libxatracker2 \ mesa-va-drivers \ mesa-vdpau-drivers \ mesa-vulkan-drivers \ va-driver-all \ vainfo \ hwinfo \ clinfo && \ # FFmpeg 6 ffmpegversion=$(curl --silent https://api.github.com/repos/jellyfin/jellyfin-ffmpeg/releases/latest | grep -oP '"tag_name":\s*"v\K[^"]+' | sort -h | tail -n1) && \ wget https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v$ffmpegversion/jellyfin-ffmpeg6_$ffmpegversion-jammy_amd64.deb && \ apt install -y \ ./jellyfin-ffmpeg6_$ffmpegversion-jammy_amd64.deb && \ rm -rf ./jellyfin-ffmpeg6_$ffmpegversion-jammy_amd64.deb && \ ln -s /usr/lib/jellyfin-ffmpeg/ffmpeg /usr/local/bin/ffmpeg && \ ln -s /usr/lib/jellyfin-ffmpeg/ffmpeg /usr/local/bin/tdarr-ffmpeg && \ # apt-get install -y ffmpeg && \ # HandBrake dependencies apt-get install -y \ autoconf \ automake \ build-essential \ cmake \ git \ libass-dev \ libass9 \ libbz2-dev \ libfontconfig-dev \ libfreetype-dev \ libfribidi-dev \ libharfbuzz-dev \ libjansson-dev \ liblzma-dev \ libmp3lame-dev \ libnuma-dev \ libogg-dev \ libopus-dev \ libsamplerate0-dev \ libspeex-dev \ libtheora-dev \ libtool \ libtool-bin \ libturbojpeg0-dev \ libvorbis-dev \ libx264-dev \ libxml2-dev \ libvpx-dev \ m4 \ make \ meson \ nasm \ ninja-build \ patch \ pkg-config \ # python \ tar \ zlib1g-dev \ # QSV dependencies libva-dev \ libdrm-dev && \ rm -rdf /tmp/handbrake && \ mkdir -p /tmp/handbrake && \ git clone \ --branch ${HANDBRAKE} \ --depth 1 https://github.com/HandBrake/HandBrake.git \ /tmp/handbrake && \ cd /tmp/handbrake && \ ./configure \ --enable-nvenc \ --enable-qsv \ --enable-x265 \ --disable-gtk \ --launch-jobs=14 \ --launch \ --force && \ make --directory=build install && \ cp /tmp/handbrake/build/HandBrakeCLI /usr/local/bin/HandBrakeCLI && \ rm -rdf /tmp/handbrake/ ; \ fi && \ if uname -m | grep -q aarch64; then \ apt-get install -y handbrake-cli ffmpeg && \ ln -s /usr/bin/ffmpeg /usr/local/bin/tdarr-ffmpeg ; \ fi && \ if uname -m | grep -q armv7l; then \ apt-get install -y handbrake-cli ffmpeg && \ ln -s /usr/bin/ffmpeg /usr/local/bin/tdarr-ffmpeg ; \ fi && \ trash-empty && \ if uname -m | grep -q x86; then \ apt-get clean && \ apt purge -y \ g++-9 \ gcc-9 \ # libc6-dev \ libstdc++-9-dev \ cpp-9 \ libgcc-9-dev \ libstd-rust-dev \ # libllvm12 \ libicu-dev \ cargo \ libstd-rust-1.65 \ libstd-rust-dev \ git \ cmake \ python3-pip ; \ fi && \ apt autoremove -y