Multi-Arch Container Images for Azure IoT Edge

Vitaliy Slepakov
1 min readJun 15, 2020

Recently a customer needed to build container images for his ARM based IoT Edge Devices using Azure DevOps. While there are multiple approaches ranging from using custom ARM based build agents in Azure DevOps to using cross-compilation tool chains etc. I found using qemu in conjunction with docker manifest to be another interesting and flexible approach.

In my GitHub repo you can find an example YAML-Pipeline for Azure DevOps which sets up qemu, builds and pushes images for different architectures (based on debian:buster-slim), creates a manifest and pushes it to DockerHub. The result is ONE tag which supports multiple architectures:

Multi-arch image

And this is what a completed Pipeline run looks like in Azure DevOps:

Of course the approach can be implemented using other CI/CD tools like e.g. Jenkins or GitHub Actions.

This sample was inspired by this repo. There are a few differences though.

--

--