mirror of
https://github.com/HaveAGitGat/Tdarr.git
synced 2025-12-10 00:07:09 -06:00
* mkvtoolnix update Add mkvtoolnix Ubuntu repository, allowing latest version of mkvtoolnix (Ubuntu has up to 45.0.0-2, current in this repo is 81.0-0 ) * Change install order and format commands --------- Co-authored-by: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com>
196 lines
6.4 KiB
Docker
196 lines
6.4 KiB
Docker
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
|