From a4d421d398f19ab792341c53a5234bc57b9e38be Mon Sep 17 00:00:00 2001 From: GlassedSilver Date: Mon, 18 Apr 2022 05:54:01 +0200 Subject: [PATCH 1/3] add downloader script for JVS's ffmpeg master blds --- ffmpeg-from-master.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 ffmpeg-from-master.sh diff --git a/ffmpeg-from-master.sh b/ffmpeg-from-master.sh new file mode 100644 index 0000000..ba8e304 --- /dev/null +++ b/ffmpeg-from-master.sh @@ -0,0 +1,15 @@ +#!/bin/sh +case $(uname -m) in + x86_64) + ARCH=amd64;; + aarch64) + ARCH=arm64;; + armv7) + ARCH=armel;; + armv7l) + ARCH=armel;; + *) + ARCH=$(uname -m);; +esac +wget "https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-$ARCH-static.tar.xz" -O ffmpeg.txz +docker build \ No newline at end of file From f79b254040e6c9b4b414db602ebebb31292dd464 Mon Sep 17 00:00:00 2001 From: GlassedSilver Date: Mon, 18 Apr 2022 07:29:28 +0200 Subject: [PATCH 2/3] using more recent ffmpeg + code cleanup --- .dockerignore | 7 +++++++ .gitignore | 8 ++++++++ Dockerfile | 8 +++++++- docker-build.sh | 30 ++++++++++++++++++++++++++++++ docker-compose.yml | 3 +++ ffmpeg-from-master.sh | 15 --------------- 6 files changed, 55 insertions(+), 16 deletions(-) create mode 100644 .dockerignore create mode 100644 docker-build.sh delete mode 100644 ffmpeg-from-master.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..3366092 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +.git +db +appdata +audio +video +subscriptions +users \ No newline at end of file diff --git a/.gitignore b/.gitignore index 44fa9c2..e0af431 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,11 @@ backend/users/* backend/appdata/cookies.txt backend/public src/assets/i18n/*.json + +# User Files +db/ +appdata/ +audio/ +video/ +subscriptions/ +users/ \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index ead755e..0452eed 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,8 @@ +FROM alpine:latest AS ffmpeg + +COPY docker-build.sh . +RUN sh ./docker-build.sh + FROM alpine:latest as frontend RUN apk add --no-cache \ @@ -26,7 +31,6 @@ ENV NO_UPDATE_NOTIFIER=true RUN addgroup -S $USER -g $GID && adduser -D -S $USER -G $USER -u $UID RUN apk add --no-cache \ - ffmpeg \ npm \ python2 \ python3 \ @@ -35,6 +39,8 @@ RUN apk add --no-cache \ atomicparsley WORKDIR /app +COPY --from=ffmpeg /usr/local/bin/ffmpeg /usr/local/bin/ffmpeg +COPY --from=ffmpeg /usr/local/bin/ffprobe /usr/local/bin/ffprobe COPY --chown=$UID:$GID [ "backend/package.json", "backend/package-lock.json", "/app/" ] ENV PM2_HOME=/app/pm2 RUN npm install pm2 -g diff --git a/docker-build.sh b/docker-build.sh new file mode 100644 index 0000000..63ff0c0 --- /dev/null +++ b/docker-build.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +# THANK YOU TALULAH (https://github.com/nottalulah) for your help in figuring this out +# and also optimizing some code with this commit. +# xoxo :D + +set -xeuo pipefail + +case $(uname -m) in + x86_64) + ARCH=amd64;; + aarch64) + ARCH=arm64;; + armhf) + ARCH=armhf;; + armv7) + ARCH=armel;; + armv7l) + ARCH=armel;; + *) + echo "Unsupported architecture: $(uname -m)" + exit 1 +esac + +wget "https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-$ARCH-static.tar.xz" -O ffmpeg.txz +mkdir /tmp/ffmpeg +tar xf ffmpeg.txz -C /tmp/ffmpeg +cp /tmp/ffmpeg/*/ffmpeg /usr/local/bin/ffmpeg +cp /tmp/ffmpeg/*/ffprobe /usr/local/bin/ffprobe +rm -rf /tmp/ffmpeg ffmpeg.txz \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 2d0d73e..60aef89 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,6 +7,8 @@ services: ytdl_use_local_db: 'false' write_ytdl_config: 'true' restart: always + depends_on: + - ytdl-mongo-db volumes: - ./appdata:/app/appdata - ./audio:/app/audio @@ -23,5 +25,6 @@ services: logging: driver: "none" container_name: mongo-db + restart: always volumes: - ./db/:/data/db \ No newline at end of file diff --git a/ffmpeg-from-master.sh b/ffmpeg-from-master.sh deleted file mode 100644 index ba8e304..0000000 --- a/ffmpeg-from-master.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -case $(uname -m) in - x86_64) - ARCH=amd64;; - aarch64) - ARCH=arm64;; - armv7) - ARCH=armel;; - armv7l) - ARCH=armel;; - *) - ARCH=$(uname -m);; -esac -wget "https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-$ARCH-static.tar.xz" -O ffmpeg.txz -docker build \ No newline at end of file From 16943847fc8d162c82a212bcb3671d89fcaeb609 Mon Sep 17 00:00:00 2001 From: GlassedSilver Date: Mon, 18 Apr 2022 08:57:21 +0200 Subject: [PATCH 3/3] fix ffmpeg download with variable --- docker-build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker-build.sh b/docker-build.sh index 63ff0c0..5876372 100644 --- a/docker-build.sh +++ b/docker-build.sh @@ -22,7 +22,8 @@ case $(uname -m) in exit 1 esac -wget "https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-$ARCH-static.tar.xz" -O ffmpeg.txz +echo "Architecture: $ARCH" +wget "https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-${ARCH}-static.tar.xz" -O ffmpeg.txz mkdir /tmp/ffmpeg tar xf ffmpeg.txz -C /tmp/ffmpeg cp /tmp/ffmpeg/*/ffmpeg /usr/local/bin/ffmpeg