From 325d95af6ffca5d7b523f8ea81e8384af3ae906e Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Fri, 24 Jul 2026 14:26:24 +0200 Subject: [PATCH] build(worker): lokale MakeMKV-Tarballs (vendor/) schlagen den Download MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cloudflare drosselt BuildKit-Downloads von makemkv.com hartnaeckig (24.07. viermal, auch MIT --retry-all-errors, waehrend dieselben URLs ausserhalb des Builds laden). Dauerhafter Ausweg statt Mirror-Hack: Tarballs einmal nach docker/worker/vendor/ legen (untracked, .gitignore) — der Build nutzt sie dann direkt und faellt sonst auf curl+Retry zurueck. Co-Authored-By: Claude Fable 5 --- docker/worker/Dockerfile | 24 +++++++++++++++++------- docker/worker/vendor/.gitignore | 1 + docker/worker/vendor/README.md | 3 +++ 3 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 docker/worker/vendor/.gitignore create mode 100644 docker/worker/vendor/README.md diff --git a/docker/worker/Dockerfile b/docker/worker/Dockerfile index 3b1ed28..02d383e 100644 --- a/docker/worker/Dockerfile +++ b/docker/worker/Dockerfile @@ -42,13 +42,23 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ WORKDIR /build -# --retry-all-errors: makemkv.com drosselt hinter Cloudflare zeitweise auch -# einzelne GETs (24.07. zweimal mitten am Tag, HEAD ging, GET nicht) — fünf -# Versuche mit Backoff überstehen das, statt den ganzen Build zu killen. -RUN curl -fsSL --retry 5 --retry-delay 15 --retry-all-errors \ - -o oss.tar.gz "${MAKEMKV_URL_BASE}/makemkv-oss-${MAKEMKV_VERSION}.tar.gz" \ - && curl -fsSL --retry 5 --retry-delay 15 --retry-all-errors \ - -o bin.tar.gz "${MAKEMKV_URL_BASE}/makemkv-bin-${MAKEMKV_VERSION}.tar.gz" \ +# Download mit doppeltem Netz (Cloudflare drosselt BuildKit-Downloads +# hartnäckig — 24.07. viermal, auch MIT --retry-all-errors): +# 1. Liegen die Tarballs lokal in docker/worker/vendor/ (untracked), werden +# SIE genutzt — einmal von Hand hinlegen, nie wieder Download-Roulette. +# 2. Sonst curl mit Retries gegen MAKEMKV_URL_BASE. +COPY docker/worker/vendor/ ./vendor/ +RUN if [ -s "vendor/makemkv-oss-${MAKEMKV_VERSION}.tar.gz" ] \ + && [ -s "vendor/makemkv-bin-${MAKEMKV_VERSION}.tar.gz" ]; then \ + echo "Nutze lokale Tarballs aus vendor/"; \ + cp "vendor/makemkv-oss-${MAKEMKV_VERSION}.tar.gz" oss.tar.gz; \ + cp "vendor/makemkv-bin-${MAKEMKV_VERSION}.tar.gz" bin.tar.gz; \ + else \ + curl -fsSL --retry 5 --retry-delay 15 --retry-all-errors \ + -o oss.tar.gz "${MAKEMKV_URL_BASE}/makemkv-oss-${MAKEMKV_VERSION}.tar.gz" \ + && curl -fsSL --retry 5 --retry-delay 15 --retry-all-errors \ + -o bin.tar.gz "${MAKEMKV_URL_BASE}/makemkv-bin-${MAKEMKV_VERSION}.tar.gz"; \ + fi \ && sha256sum oss.tar.gz bin.tar.gz \ && tar xzf oss.tar.gz \ && tar xzf bin.tar.gz diff --git a/docker/worker/vendor/.gitignore b/docker/worker/vendor/.gitignore new file mode 100644 index 0000000..335ec95 --- /dev/null +++ b/docker/worker/vendor/.gitignore @@ -0,0 +1 @@ +*.tar.gz diff --git a/docker/worker/vendor/README.md b/docker/worker/vendor/README.md new file mode 100644 index 0000000..bacf3d9 --- /dev/null +++ b/docker/worker/vendor/README.md @@ -0,0 +1,3 @@ +# MakeMKV-Tarballs hier ablegen (makemkv-oss-X.tar.gz + makemkv-bin-X.tar.gz), +# wenn Cloudflare die Build-Downloads drosselt — der Build nutzt sie dann +# statt des Downloads. Bleiben untracked (siehe .gitignore).