cirruslabs/cirrus-ci-docs

Register qemu with container engine

Closed this issue · 1 comments

Motivation

It would be nice to install qemu and connect it to the Cirrus CI container engine via binfmt_misc.

This would allow to run any architecture supported by qemu on Cirrus CI inside the dockerfile: env.

Implementation

The setup procedure depends on the container engine that Cirrus CI uses. For example, (untested)

  • Running Podman on Fedora 38, no further steps are needed. Everything is installed and set up as part of the podman-docker meta package.
  • Running Podman on Debian/Ubuntu: sudo podman run --rm --privileged multiarch/qemu-user-static --reset -p yes, according to https://github.com/multiarch/qemu-user-static#getting-started
  • Docker: Same command, as from the link above.

Current status

Currently, running the docker.io/arm32v7/debian:bookworm image prints exec format error. See https://cirrus-ci.com/task/6369879847075840?logs=build#L42

Closing for now, because:

  • As a workaround, self-hosted instances can be used
  • Cirrus CI moving to GCE probably makes this harder/impossible to configure?