#!/bin/bash # Startet als root, uebernimmt den gemeinsamen, EXTERN erzeugten Signing-Key # aus dem read-only gemounteten /run/secrets/gpg (auf dem Host: ./gpg neben # der docker-compose.yml) in ein containerlokales GNUPGHOME, das dem # unprivilegierten "mirror"-User gehoert - und wechselt dann per setpriv # dauerhaft zu diesem User (ersetzt den Prozess direkt, kein Wrapper- # Kindprozess, damit Signale/PID 1 sauber bleiben). # # Bewusst eine Kopie statt direkt auf dem Mount zu arbeiten: gpg schreibt in # seinem Homedir (trustdb, random_seed, Lockfiles), und derselbe Ordner ist # gleichzeitig im flatpak-mirror-Container gemountet. Die Kopie haelt das # Original unveraendert und vermeidet, dass sich beide Container beim # Signieren gegenseitig ins Gehege kommen. set -euo pipefail GPG_SOURCE=/run/secrets/gpg export GNUPGHOME="${GNUPGHOME:-/etc/mirror-gpg}" # shellcheck source=/dev/null . /usr/local/lib/gpg-import.sh import_shared_gpg mkdir -p /srv/dnf /var/cache/mirror chown -R mirror:mirror "$GNUPGHOME" /srv/dnf /var/cache/mirror exec setpriv --reuid=mirror --regid=mirror --init-groups /usr/local/bin/run-as-mirror.sh