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).