From 3f073b3ec336ba07391059420e915460db30a077 Mon Sep 17 00:00:00 2001 From: tcely Date: Wed, 30 Apr 2025 19:09:55 -0400 Subject: [PATCH 1/7] Include openresty --- Dockerfile | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index c21a18c1..3d1d55ee 100644 --- a/Dockerfile +++ b/Dockerfile @@ -58,6 +58,28 @@ RUN --mount=type=cache,id=apt-lib-cache-${TARGETARCH},sharing=private,target=/va apt-get -y autoclean && \ rm -f /var/cache/debconf/*.dat-old +FROM alpine:${ALPINE_VERSION} AS openresty-debian +ARG TARGETARCH +ARG DEBIAN_VERSION +ADD 'https://openresty.org/package/pubkey.gpg' '/downloaded/pubkey.gpg' +RUN set -eu ; \ + decide_arch() { \ + case "${TARGETARCH}" in \ + (amd64) printf -- '' ;; \ + (arm64) printf -- 'arm64/' ;; \ + esac ; \ + } ; \ + set -x ; \ + mkdir -v -p '/etc/apt/trusted.gpg.d' && \ + apk --no-cache --no-progress add cmd:gpg2 && \ + gpg2 --dearmor \ + -o '/etc/apt/trusted.gpg.d/openresty.gpg' \ + < '/downloaded/pubkey.gpg' && \ + mkdir -v -p '/etc/apt/sources.list.d' && \ + printf -- >| '/etc/apt/sources.list.d/openresty.list' \ + 'deb http://openresty.org/package/%sdebian %s openresty' \ + "$(decide_arch)" "${DEBIAN_VERSION%-slim}" + FROM alpine:${ALPINE_VERSION} AS ffmpeg-download ARG FFMPEG_DATE ARG FFMPEG_VERSION @@ -257,7 +279,36 @@ RUN set -eu ; \ FROM scratch AS s6-overlay COPY --from=s6-overlay-extracted /s6-overlay-rootfs / -FROM tubesync-base AS tubesync +FROM tubesync-base AS tubesync-openresty + +COPY --from=openresty-debian \ + /etc/apt/trusted.gpg.d/openresty.gpg /etc/apt/trusted.gpg.d/openresty.gpg +COPY --from=openresty-debian \ + /etc/apt/sources.list.d/openresty.list /etc/apt/sources.list.d/openresty.list + +RUN --mount=type=cache,id=apt-lib-cache-${TARGETARCH},sharing=private,target=/var/lib/apt \ + --mount=type=cache,id=apt-cache-cache,sharing=private,target=/var/cache/apt \ + set -x && \ + apt-get update && \ + apt-get -y --no-install-recommends install nginx-light openresty && \ + # Clean up + apt-get -y autopurge && \ + apt-get -y autoclean && \ + rm -v -f /var/cache/debconf/*.dat-old + +FROM tubesync-base AS tubesync-nginx + +RUN --mount=type=cache,id=apt-lib-cache-${TARGETARCH},sharing=private,target=/var/lib/apt \ + --mount=type=cache,id=apt-cache-cache,sharing=private,target=/var/cache/apt \ + set -x && \ + apt-get update && \ + apt-get -y --no-install-recommends install nginx-light && \ + # Clean up + apt-get -y autopurge && \ + apt-get -y autoclean && \ + rm -v -f /var/cache/debconf/*.dat-old + +FROM tubesync-openresty AS tubesync ARG S6_VERSION @@ -282,7 +333,6 @@ RUN --mount=type=cache,id=apt-lib-cache-${TARGETARCH},sharing=private,target=/va libmariadb3 \ libpq5 \ libwebp7 \ - nginx-light \ pipenv \ pkgconf \ python3 \ From a8d8e9d055ef4d2e1e43a7eeae557a0b93df5334 Mon Sep 17 00:00:00 2001 From: tcely Date: Wed, 30 Apr 2025 21:23:14 -0400 Subject: [PATCH 2/7] Update run --- config/root/etc/s6-overlay/s6-rc.d/nginx/run | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/root/etc/s6-overlay/s6-rc.d/nginx/run b/config/root/etc/s6-overlay/s6-rc.d/nginx/run index 87769e62..63653343 100755 --- a/config/root/etc/s6-overlay/s6-rc.d/nginx/run +++ b/config/root/etc/s6-overlay/s6-rc.d/nginx/run @@ -2,4 +2,4 @@ cd / -exec /usr/sbin/nginx +exec /usr/bin/openresty -c /etc/nginx/nginx.conf -e stderr From cfb4b4ca1717517b9a5c1f33a7d25747d9445138 Mon Sep 17 00:00:00 2001 From: tcely Date: Wed, 30 Apr 2025 21:32:54 -0400 Subject: [PATCH 3/7] Don't install `nginx` binaries --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 3d1d55ee..c3a1c5a1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -290,7 +290,7 @@ RUN --mount=type=cache,id=apt-lib-cache-${TARGETARCH},sharing=private,target=/va --mount=type=cache,id=apt-cache-cache,sharing=private,target=/var/cache/apt \ set -x && \ apt-get update && \ - apt-get -y --no-install-recommends install nginx-light openresty && \ + apt-get -y --no-install-recommends install nginx-common openresty && \ # Clean up apt-get -y autopurge && \ apt-get -y autoclean && \ From 7ca79af746dc65c345cbadb8c81bf21e12e247aa Mon Sep 17 00:00:00 2001 From: tcely Date: Wed, 30 Apr 2025 21:36:20 -0400 Subject: [PATCH 4/7] Use the `openresty` binary --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index c3a1c5a1..64782388 100644 --- a/Dockerfile +++ b/Dockerfile @@ -456,7 +456,8 @@ RUN set -x && \ mkdir -v -p /downloads/audio && \ mkdir -v -p /downloads/video && \ # Check nginx configuration copied from config/root/etc - nginx -t && \ + openresty -c /etc/nginx/nginx.conf -e stderr + -t && \ # Append software versions ffmpeg_version=$(/usr/local/bin/ffmpeg -version | awk -v 'ev=31' '1 == NR && "ffmpeg" == $1 { print $3; ev=0; } END { exit ev; }') && \ test -n "${ffmpeg_version}" && \ From f9d1e00356f97fa7f769ee5a7280e41b45e97902 Mon Sep 17 00:00:00 2001 From: tcely Date: Wed, 30 Apr 2025 21:41:57 -0400 Subject: [PATCH 5/7] fixup: remove the extra newline --- Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 64782388..6d49e051 100644 --- a/Dockerfile +++ b/Dockerfile @@ -456,8 +456,7 @@ RUN set -x && \ mkdir -v -p /downloads/audio && \ mkdir -v -p /downloads/video && \ # Check nginx configuration copied from config/root/etc - openresty -c /etc/nginx/nginx.conf -e stderr - -t && \ + openresty -c /etc/nginx/nginx.conf -e stderr -t && \ # Append software versions ffmpeg_version=$(/usr/local/bin/ffmpeg -version | awk -v 'ev=31' '1 == NR && "ffmpeg" == $1 { print $3; ev=0; } END { exit ev; }') && \ test -n "${ffmpeg_version}" && \ From e58c4bae99efefc6f27b2fa790fa6ad55e7f8edd Mon Sep 17 00:00:00 2001 From: tcely Date: Wed, 30 Apr 2025 22:13:45 -0400 Subject: [PATCH 6/7] Switch back to the `nginx-light` stage --- Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 6d49e051..eabc4f2e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -303,12 +303,14 @@ RUN --mount=type=cache,id=apt-lib-cache-${TARGETARCH},sharing=private,target=/va set -x && \ apt-get update && \ apt-get -y --no-install-recommends install nginx-light && \ + # openresty binary should still work + ln -v -s -T ../sbin/nginx /usr/bin/openresty && \ # Clean up apt-get -y autopurge && \ apt-get -y autoclean && \ rm -v -f /var/cache/debconf/*.dat-old -FROM tubesync-openresty AS tubesync +FROM tubesync-nginx AS tubesync ARG S6_VERSION From 144720f6af4d9ee9f4bf289ce3fa42c750d3419c Mon Sep 17 00:00:00 2001 From: tcely Date: Wed, 30 Apr 2025 22:47:53 -0400 Subject: [PATCH 7/7] Switch to the `openresty` stage --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index eabc4f2e..6ef178c5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -310,7 +310,7 @@ RUN --mount=type=cache,id=apt-lib-cache-${TARGETARCH},sharing=private,target=/va apt-get -y autoclean && \ rm -v -f /var/cache/debconf/*.dat-old -FROM tubesync-nginx AS tubesync +FROM tubesync-openresty AS tubesync ARG S6_VERSION