Ich habe eine Nodejs App auf github dockerized. Meine Dockerfile basiert auf den offiziellen Nodejs Images. Der offizielle Knoten-Repo unterstützt nahtlos mehrere Architekturen (x86, amd64, arm). Dies bedeutet, dass ich die gleiche Dockerfile auf verschiedenen Maschinen erstellen kann, was zu unterschiedlichen Bildern für die jeweilige Architektur führt.So automatisieren Multi-Arch-Docker Image erstellt
Also versuche ich die gleichen Architekturen nahtlos für meine App zu bieten. Aber wie? Mein Ziel ist es so viel wie möglich zu automatisieren. Ich weiß, dass ich in der Theorie ein Docker-Manifest erstellen muss, das als Docker-Repo fungiert und die Endbenutzer-Docker-Clients auf ihre geeigneten Bilder umleitet.
Docker-Hub selbst kann ein Github Repo überwachen und einen automatisierten Build starten. Thats würde auf das amd64 Bild aufpassen. Aber was ist mit den verbleibenden Architekturen? Dort gibt es auch den Service "TravisCI", von dem ich denke, dass er sich mit Hilfe von qemu um den Armbau kümmern kann. Dann denke ich, beide Repos könnten dann statisch durch das Manifest-Repo referenziert werden. Aber das lässt immer noch ein paar Architekturen unerfüllt.
Aber die Verwendung mehrerer Dienste/Möglichkeiten zum Erstellen der gleichen App fühlt sich falsch an. Kennt jemand eine bessere und vollständigere Lösung für dieses Problem? Es läuft im Grunde die gleiche Dockerfile durch ein paar Maschinen und notiert sie in einem Manifest.
Auch daran interessiert, wie Menschen das lösen – Chris
Ich werde keine Antwort versuchen, wie ich auch mit diesem kämpfen, endete ich mit echten Geräten und Cron. Siehe https://blog.slucas.fr/blog/docker-multiarch-manifest-hub-1/ – seblucas