I create my own multi-arch oci images via the yocto project.
This works pretty well for x86/64 and armv7 images.
e.g. I have here an x86/64 and armv7 container which works for me both on various arm32 boards and on an x86/64 with docker.
Please note that for my armv7 images I use those compiler tunes (I know it’s only SW floating point, but that runs on many boars).
TUNE_FEATURES = "arm armv7a vfp neon" TARGET_FPU = "softfp"
On aarch64 things look differently:
for an i.mx8:
TUNE_FEATURES = "aarch64 cortexa53 crc crypto" TARGET_FPU = ""
for a raspberrypi 64:
TUNE_FEATURES = "aarch64 cortexa72 crc crypto" TARGET_FPU = ""
I would like to avoid building the same container for each aarch64 target and also I am not sure whether the docker engine would pick the right one.
*)How do you currently manage to build one container image which runs on multiple aarch64 boards?
*)How does the docker engine pick out the proper image in case of multi-arch images? Let’s say for performance reasons I would like to build optimized images per architecture some time in the future.