diff --git a/host-agent/Dockerfile.win b/host-agent/Dockerfile.win index 3566a71..ac07a6f 100644 --- a/host-agent/Dockerfile.win +++ b/host-agent/Dockerfile.win @@ -18,7 +18,16 @@ WORKDIR /work # nssm — Non-Sucking Service Manager (public domain): macht aus der Konsolen-.exe # einen sauberen Windows-Dienst (die .exe selbst spricht das SCM nicht). -RUN curl -fsSL https://nssm.cc/release/nssm-2.24.zip -o /tmp/nssm.zip \ +# nssm.cc faellt oefter aus (503) — dann Ersatz aus dem Internet Archive. +# Beide liefern dieselbe Datei; die Pruefsumme stellt das sicher. +ARG NSSM_SHA256=727d1e42275c605e0f04aba98095c38a8e1e46def453cdffce42869428aa6743 +RUN for url in https://nssm.cc/release/nssm-2.24.zip \ + "https://web.archive.org/web/2024id_/https://nssm.cc/release/nssm-2.24.zip"; do \ + curl -fsSL --retry 3 --retry-delay 5 --retry-all-errors "$url" -o /tmp/nssm.zip \ + && echo "$NSSM_SHA256 /tmp/nssm.zip" | sha256sum -c - && break; \ + echo "nssm: $url fehlgeschlagen, versuche naechste Quelle" >&2; rm -f /tmp/nssm.zip; \ + done \ + && test -f /tmp/nssm.zip \ && unzip -q /tmp/nssm.zip -d /tmp \ && cp /tmp/nssm-2.24/win64/nssm.exe ./nssm.exe \ && rm -rf /tmp/nssm* diff --git a/host-agent/release_agent.sh b/host-agent/release_agent.sh index cde8fa7..cc5cfcf 100755 --- a/host-agent/release_agent.sh +++ b/host-agent/release_agent.sh @@ -117,11 +117,13 @@ if [ "${SKIP_WINDOWS:-0}" = "1" ]; then echo -e " ${YELLOW}Windows-Build uebersprungen (SKIP_WINDOWS=1)${NC}" else echo -e " ${CYAN}…${NC} Windows-.exe + setup.exe bauen (Wine, kann dauern)" - if ./build-win.sh "$VERSION" >/dev/null 2>&1; then + WIN_LOG="$SCRIPT_DIR/dist/build-win.log" + if ./build-win.sh "$VERSION" >"$WIN_LOG" 2>&1; then echo -e " ${GREEN}✓${NC} Windows-.exe + setup.exe" else echo -e " ${YELLOW}Windows-Build fehlgeschlagen — Release laeuft ohne Windows weiter.${NC}" - echo -e " ${YELLOW}(Einzeln testen: ./build-win.sh $VERSION)${NC}" + echo -e " ${YELLOW}Letzte Zeilen (ganzes Log: $WIN_LOG):${NC}" + tail -n 8 "$WIN_LOG" | sed 's/^/ /' fi fi echo ""