Nochmal zur Verdeutlichung:
Ich baue eigentlich einen Docker-Container für Telerising-Binaries. Damit dieser möglichst klein ist erstelle ich die Binary und packe sie in einen Scratch-basierten Container. "Scratch" bedeutet, dass es sich um ein absolut minimales Linux handelt, das im Prinzip nur und ausschließlich bootfähig, aber ansonsten komplett nackt ist. Da Docker grundsätzlich Container für mehrere Architekturen erlaubt bei denen es dann selbst entscheidet, welcher Container passt, baue ich aktuell hierfür für amd64, arm32v7 und arm64v8. Das ist das, wofür ich mich aktuell eigentlich verantwortlich fühle - und das bauen dauert momentan ca. 3-4 Stunden für diese 3 Versionen. Als OS für das Bauen wird dabei noch ein Debian Buster benutzt, da es hier in der Vergangenheit mit neueren Versionen Probleme gab.
Nun gab es mit den anderweitig bereitgestellten Binaries immer mal wieder Probleme, so das ich letztlich (weil ich sie eh bauen muss) in meinem Repo die Standalone Binaries mit an das Release hänge. Die meisten von Euch verwenden irgendein Modell des RPIs und haben jetzt irgendwie gefühlt den Anspruch, es müsse da doch laufen...
Dazu kann ich Euch nur sagen: Nein, muss es nicht. Denn leider ist in diesem Zusammenhang ARM sehr viel komplizierter als AMD64 und die Entscheidung von Raspberry einfach mal so von 4k Pagesize (was normal ist) auf 16k umzustellen macht die Sache nochmal deutlich komplizierter. Docker z.B. ist gar nicht dazu in der Lage die Pagesize irgendwo mit einfließen zu lassen. Ein Image ist armv7, oder eben nicht. Passt es von der Architektur her zusammen, dann wird es genommen. Laufen muss es deswegen aber nicht zwangsläufig.
Ich bin gerne bereit meine Binaries, ab vom Docker, etwas zu erweitern. Dafür brauche ich aber Eure Unterstützung. Was die RPIs dieser Welt angeht gehe ich momentan von folgendem aus:
RPI mit Pi OS auf Basis von Debian Buster:
=> Da die Pagesize hier 4k sein müsste und die Binaries für Docker auf Buster gebaut werden sollten hier die arm32v7 bzw. arm64v8 binaries laufen
RPI mit Pi OS auf Basis von Debian Bullseye:
=> Auch hier ist die Pagesize meines Wissens nach 4k und es sollten eigentlich die arm32v7 bzw. arm64v8 binaries aus Buster laufen
RPI mit Pi OS auf Basis von Debian Bookworm:
=> Pagesize ist hier 16k, ergo müssen sowohl die arm32v7 als auch die arm64v8 binaries explizit darauf/dafür gebaut werden
Für Pi OS auf Basis von Bullseye und auch Bookworm gibt es Docker base-images. Die könnte ich also bauen. Allerdings dürfte Bullseye eigentlich nicht nötig sein, da hier die Buster-binaries laufen sollten. Ergo gehe ich aktuell davon aus, dass lediglich Bookworm-binaries neu hinzukommen.
Ist das so korrekt?
Und bitte immer mit angeben auf welcher Basis Euer Pi läuft, Buster/Bullseye oder Bookworm und auch ob es 32 oder 64bit sind...