#!/bin/bash # Laeuft als unprivilegierter User "mirror" (siehe entrypoint.sh, der als root # den gemeinsamen Signing-Key nach $GNUPGHOME kopiert und dann per setpriv # hierher wechselt). set -euo pipefail : "${GPG_KEY_ID:?GPG_KEY_ID muss gesetzt sein (gemeinsamer Signing-Key, siehe .env)}" : "${MIRROR_REPO_ID:=company-mirror}" : "${SYNC_INTERVAL_SECONDS:=21600}" # Der Key wird NICHT vom Container erzeugt: beide Spiegel benutzen denselben, # extern erzeugten Key aus ./gpg (den entrypoint.sh als root hierher kopiert # hat). Ist er unbrauchbar, ist der ganze Sync sinnlos - lieber sofort und mit # einer Meldung abbrechen, die sagt, was stattdessen im Schluesselbund liegt. # shellcheck source=/dev/null . /usr/local/lib/gpg-import.sh require_usable_signing_key mkdir -p /srv/dnf gpg --batch --yes --armor --export "$GPG_KEY_ID" > /srv/dnf/RPM-GPG-KEY-mirror echo "[entrypoint] Public Key nach /srv/dnf/RPM-GPG-KEY-mirror exportiert." term_handler() { echo "[entrypoint] Beende nach aktuellem Sync-Lauf ..." exit 0 } trap term_handler SIGTERM SIGINT while true; do /usr/local/bin/sync.sh || echo "[entrypoint] sync.sh ist mit Fehler beendet, naechster Versuch in ${SYNC_INTERVAL_SECONDS}s" sleep "$SYNC_INTERVAL_SECONDS" & wait $! done