Hi,
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[1] an x86/64 and armv7 container which works for me both on various arm32 boards and on an x86/64 with docker.
[1] https://hub.docker.com/repository/docker/reliableembeddedsystems/oci-telegraf-prebuilt/tags?page=1
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.