Skip to content
Tech News
← Back to articles

Arch Linux Now Has a Bit-for-Bit Reproducible Docker Image

read original get Arch Linux Reproducible Docker → more articles
Why This Matters

The introduction of a bit-for-bit reproducible Arch Linux Docker image marks a significant step toward greater transparency and consistency in containerized environments. While current limitations require manual key initialization, this milestone enhances trust and reliability for developers and users seeking deterministic builds, ultimately benefiting the broader open-source and container ecosystem.

Key Takeaways

Arch Linux Now Has a Bit-for-Bit Reproducible Docker Image

As a follow-up to the similar milestone reached for our WSL image a few months ago, I’m happy to share that Arch Linux now has a bit-for-bit reproducible Docker image!

This bit-for-bit reproducible image is distributed under a new “repro” tag.

The reason for this is due to one noticeable caveat: to ensure reproducibility, the pacman keys have to be stripped from the image, meaning that pacman is not usable out of the box in this image. While waiting to find a suitable solution to this technical constraint, we are therefore providing this reproducible image under a dedicated tag as a first milestone.

In practice, that means that users will need to (re)generate the pacman keyring in the container before being able to install and update packages via pacman , by running: pacman-key --init && pacman-key --populate archlinux (whether interactively at first start or from a RUN statement in a Dockerfile if using this image as base).

Distrobox users can run this as a pre-init hook: distrobox create -n arch-repro -i docker.io/archlinux/archlinux:repro --pre-init-hooks "pacman-key --init && pacman-key --populate archlinux"

The bit-for-bit reproducibility of the image is confirmed by digest equality across builds (via podman inspect --format '{{.Digest}}' <image> ) and by using diffoci to compare builds.

Documentation to reproduce this Docker image is available here.

Building the base rootFS for the Docker image in a deterministic way was the main challenge, but it reuses the same process as for our WSL image (as both share the same rootFS build system).

The main Docker-specific adjustments include (see also the related diffoci reports):

... continue reading