build container for linux/arm64 (apple silicon compatible)
Dieses Problem ist mir aufgefallen, da ich ein M1 MacBook nutze...
Aktuell werden Container Images für linux/amd64
(x86) & linux/arm
(arm/v7) gebaut. ARM/v7 ist eine 32-Bit-Architektur (wird z.B. für den Raspberry Pi 3B verwendet). Für Apple Silicon Systeme muss jedoch ein ARM 64Bit verwendet werden. (siehe https://github.com/containerd/containerd/blob/v1.4.3/platforms/platforms.go#L63)
Interessanterweise hatte ich das Problem, dass Docker bei der Wahl des Container-Images trotz der falschen Architektur den linux/arm
Container gewählt hat (wahrscheinlich weil es keinen linux/arm64 gab). Dieser kann jedoch nicht von dem Apple M1 MacBook ausgeführt werden.
Aktuelle Zwischenlösung ist es mit z.B. docker run -it --platform linux/amd64 registry.code.fbi.h-da.de/fbi1397/se_mech_ws_23_24
das Containerimage für x86 zu wählen und es über den installierten Emulator laufen zu lassen.
Um auch die Apple Silicon Systeme nativ zu unterstützen, ist die Lösung also zusätzlich einen linux/arm64
Containerimage zu bauen.
Ich habe die notwendigen Anpassungen dafür vorgenommen.