Die Arch Linux-Distribution gewährleistet reproduzierbare Container-Image-Bauten, sodass sichergestellt werden kann, dass die im Image bereitgestellten Binärdateien aus dem bereitgestellten Quellcode erstellt wurden und keine versteckten Änderungen enthalten. Die reproduzierbaren Arch Linux-Images sind im Docker Hub mit dem Tag repro verfügbar. Jeder kann aus dem Quellcode ein Container-Image erstellen, das bitgenau mit den vom Projekt bereitgestellten Images übereinstimmt, und sicherstellen, dass die Build-Infrastruktur der Distribution, der Compiler und die Build-Tools nicht kompromittiert sind.
Bei der Erstellung reproduzierbarer Builds werden solche Aspekte wie die genaue Übereinstimmung der Abhängigkeiten berücksichtigt; die Verwendung unveränderter Zusammenstellungen und Versionen der Build-Tools; identische Standardoptionen und -einstellungen; die Beibehaltung der Reihenfolge der Dateikonstruktion (Anwendung derselben Sortiermethoden); das Deaktivieren der Hinzufügung von nicht deterministischen Metadaten durch den Compiler, wie zufällige Werte, Dateipfade und Zeitstempel. Auch Fehler und Race Conditions in den Tools haben Einfluss auf die Reproduzierbarkeit der Builds.
Wiederherstellbare Abbildungen werden separat bereitgestellt, da zur Gewährleistung vollständiger Wiederholbarkeit keine Schlüssel für den Paketmanager pacman enthalten sind. Bei Bedarf zur Aktualisierung oder Installation von Paketen über pacman in diesen Abbildungen muss der Befehl zum Erstellen des Schlüsselsspeichers ausgeführt werden („pacman-key —init && pacman-key —populate archlinux“). Um die Identität Ihrer eigenen Build-Umgebung mit dem über Docker Hub bereitgestellten Abbild zu überprüfen, können Sie die Hashes vergleichen, die mit dem Befehl „podman inspect —format '{{.Digest}}' “ ausgegeben werden, oder das Tool diffoci verwenden.
Quelle: opennet.ru
