Arch Linux now has a bit-for-bit reproducible Docker image

Robin Candau antiz at archlinux.org
Mon Apr 20 15:44:17 UTC 2026


Hey everyone,

As a follow-up to the related milestone achieved for our WSL image a few 
months ago [1], I'm proud to announce 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 [2]. This is due to one important 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.
Users will need to (re)generate the pacman keyring (by running 
`pacman-key --init && pacman-key --populate archlinux`) before being 
able to update the system and install packages via pacman. 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.

The bit-for-bit reproducibility of the image is confirmed by digest 
equality across builds (`podman inspect --format '{{.Digest}}' <image>`) 
and by running `diffoci` [3] to compare builds.
We provide documentation on how to reproduce this Docker image [4] (as 
we did for the WSL image as well [5]).

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 [6] 
image (as both share the same rootFS build system).

The main Docker-specific adjustments include:

- Set `SOURCE_DATE_EPOCH` and honor it in the 
`org.opencontainers.image.created` LABEL in the Dockerfile
- Remove the ldconfig auxiliary cache file (which introduces 
non-determinism) from the built image in the Dockerfile
- Normalize timestamps during `docker build` / `podman build` using the 
`--source-date-epoch=$SOURCE_DATE_EPOCH` and `--rewrite-timestamp` options.

You can check the related change set in our archlinux-docker repository 
[7] for more details.

This represents another meaningful achievement in our "reproducible 
builds" efforts and we’re already looking forward to the next step!

[1] 
https://lists.reproducible-builds.org/pipermail/rb-general/2025-December/003975.html
[2] https://hub.docker.com/layers/archlinux/archlinux/repro
[3] https://github.com/reproducible-containers/diffoci
[4] 
https://gitlab.archlinux.org/archlinux/archlinux-docker/-/blob/master/REPRO.md
[5] 
https://gitlab.archlinux.org/archlinux/archlinux-wsl/-/blob/main/REPRO.md
[6] 
https://gitlab.archlinux.org/archlinux/archlinux-wsl/-/commit/7c0340e26358048f3f8ee03b3ab3aea666751712
[7] 
https://gitlab.archlinux.org/archlinux/archlinux-docker/-/merge_requests/96/diffs
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0xFDC3040B92ACA748.asc
Type: application/pgp-keys
Size: 9509 bytes
Desc: OpenPGP public key
URL: <http://lists.reproducible-builds.org/pipermail/rb-general/attachments/20260420/907bdf24/attachment.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <http://lists.reproducible-builds.org/pipermail/rb-general/attachments/20260420/907bdf24/attachment.sig>


More information about the rb-general mailing list