From 960c545f375077f7f37491409b7e3e84fd9bbe1d Mon Sep 17 00:00:00 2001 From: GlassedSilver Date: Sun, 1 May 2022 05:14:31 +0200 Subject: [PATCH 1/4] Dockerfile uses Ubuntu 20.04, fix obtain ffmpeg --- Dockerfile | 41 +++++++++++++++++++++-------------------- docker-build.sh | 7 ++++++- 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3a9d9e3..bd9166f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,19 @@ -FROM alpine:latest AS ffmpeg +FROM ubuntu:20.04 AS ffmpeg COPY docker-build.sh . RUN sh ./docker-build.sh -FROM alpine:latest as frontend +FROM ubuntu:20.04 as frontend -RUN apk add --no-cache \ - npm - -RUN npm install -g @angular/cli +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get update && apt-get -y install \ + wget \ + gnupg && \ + curl -sL https://deb.nodesource.com/setup_12.x | bash - && \ + apt-get -y install \ + nodejs \ + npm && \ + npm install -g @angular/cli WORKDIR /build COPY [ "package.json", "package-lock.json", "/build/" ] @@ -20,37 +25,33 @@ RUN npm run build #--------------# -FROM alpine:latest +FROM ubuntu:20.04 ENV UID=1000 \ GID=1000 \ - USER=youtube + USER=youtube \ + NO_UPDATE_NOTIFIER=true -ENV NO_UPDATE_NOTIFIER=true +RUN groupadd -g $GID $USER && useradd --system -g $USER --uid $UID $USER -RUN addgroup -S $USER -g $GID && adduser -D -S $USER -G $USER -u $UID - -RUN apk add --no-cache \ +RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - && \ + apt-get update && apt-get -y install \ npm \ python2 \ python3 \ - su-exec \ - && apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing/ \ - atomicparsley \ - && apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/main/ \ - musl + 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 -RUN npm install && chown -R $UID:$GID ./ +RUN npm install pm2 -g && \ + npm install && chown -R $UID:$GID ./ COPY --chown=$UID:$GID --from=frontend [ "/build/backend/public/", "/app/public/" ] COPY --chown=$UID:$GID [ "/backend/", "/app/" ] EXPOSE 17442 -ENTRYPOINT [ "/app/entrypoint.sh" ] +# ENTRYPOINT [ "/app/entrypoint.sh" ] CMD [ "pm2-runtime", "pm2.config.js" ] diff --git a/docker-build.sh b/docker-build.sh index 5876372..e7ca0ed 100644 --- a/docker-build.sh +++ b/docker-build.sh @@ -23,7 +23,12 @@ case $(uname -m) in esac echo "Architecture: $ARCH" -wget "https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-${ARCH}-static.tar.xz" -O ffmpeg.txz +curl --connect-timeout 5 \ + --max-time 10 \ + --retry 5 \ + --retry-delay 0 \ + --retry-max-time 40 \ + "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 From 7874f1b71ab113b2e3a6d2a3091ec21cc6df75e5 Mon Sep 17 00:00:00 2001 From: GlassedSilver Date: Sun, 1 May 2022 06:29:54 +0200 Subject: [PATCH 2/4] curl is in fact missing in focal, my bad --- Dockerfile | 1 + docker-build.sh | 2 ++ 2 files changed, 3 insertions(+) diff --git a/Dockerfile b/Dockerfile index bd9166f..3f7dcf8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,6 +8,7 @@ FROM ubuntu:20.04 as frontend ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get -y install \ wget \ + curl \ gnupg && \ curl -sL https://deb.nodesource.com/setup_12.x | bash - && \ apt-get -y install \ diff --git a/docker-build.sh b/docker-build.sh index e7ca0ed..a492c69 100644 --- a/docker-build.sh +++ b/docker-build.sh @@ -23,12 +23,14 @@ case $(uname -m) in esac echo "Architecture: $ARCH" +apt-get -y install curl curl --connect-timeout 5 \ --max-time 10 \ --retry 5 \ --retry-delay 0 \ --retry-max-time 40 \ "https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-${ARCH}-static.tar.xz" -o ffmpeg.txz +apt-get remove curl mkdir /tmp/ffmpeg tar xf ffmpeg.txz -C /tmp/ffmpeg cp /tmp/ffmpeg/*/ffmpeg /usr/local/bin/ffmpeg From 5ac5fca48268382998719642284f7f1d62f184ef Mon Sep 17 00:00:00 2001 From: GlassedSilver Date: Sun, 1 May 2022 06:37:12 +0200 Subject: [PATCH 3/4] adapt postbuild.mjs to postbuild.js --- package.json | 2 +- src/{postbuild.mjs => postbuild.js} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename src/{postbuild.mjs => postbuild.js} (100%) diff --git a/package.json b/package.json index 43dd6cb..990a4d0 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "ng": "ng", "start": "ng serve", "build": "ng build --configuration production", - "prebuild": "node src/postbuild.mjs", + "prebuild": "node src/postbuild.js", "heroku-postbuild": "npm install --prefix backend", "test": "ng test", "lint": "ng lint", diff --git a/src/postbuild.mjs b/src/postbuild.js similarity index 100% rename from src/postbuild.mjs rename to src/postbuild.js From aea4f522673cdc1a11bc255d096debdb59c007e7 Mon Sep 17 00:00:00 2001 From: GlassedSilver Date: Sun, 1 May 2022 07:12:00 +0200 Subject: [PATCH 4/4] revert postbuild.mjs file-extension change --- package.json | 2 +- src/{postbuild.js => postbuild.mjs} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename src/{postbuild.js => postbuild.mjs} (100%) diff --git a/package.json b/package.json index 990a4d0..43dd6cb 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "ng": "ng", "start": "ng serve", "build": "ng build --configuration production", - "prebuild": "node src/postbuild.js", + "prebuild": "node src/postbuild.mjs", "heroku-postbuild": "npm install --prefix backend", "test": "ng test", "lint": "ng lint", diff --git a/src/postbuild.js b/src/postbuild.mjs similarity index 100% rename from src/postbuild.js rename to src/postbuild.mjs