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

· systems · Source ↗

TLDR

  • Arch Linux ships a repro-tagged OCI/Docker image with verified bit-for-bit reproducibility; pacman keys are stripped, requiring manual keyring init before package use.

Key Takeaways

  • The repro tag is a new dedicated image; the existing default tag is unchanged for normal Dockerfile workflows.
  • Reproducibility required three concrete fixes: setting SOURCE_DATE_EPOCH, stripping the ldconfig aux-cache file, and normalizing all layer timestamps via --source-date-epoch and --rewrite-timestamp flags at build time.
  • Verified by digest equality across independent builds using podman inspect --format '{{.Digest}}' and layer-level comparison via diffoci.
  • Before running pacman, containers must execute pacman-key --init && pacman-key --populate archlinux; Distrobox users can pass this as a --pre-init-hooks argument.
  • Shares the same deterministic rootFS build pipeline as the Arch WSL reproducible image shipped a few months prior.

Hacker News Comment Review

  • Consensus treats this as a “boring win” with real operational value: one commenter described an incident where a three-byte timestamp delta between two supposedly identical images triggered an afternoon of misdirected bisecting.
  • Several commenters pushed for “OCI image” as the correct framing since the image runs identically under podman, and pinning to the Docker brand undersells its portability.
  • A side thread debated whether pragmatic mutable distros like Arch and Alpine – where an install script can express anything – will outlast declarative NixOS-style configs in container workflows over the long run.

Notable Comments

  • @dev_l1x_be: frames apt-get update inside a docker build step as an anti-pattern, implying pinned reproducible base images are the architecturally correct default.
  • @bastawhiz: “The amount of time and effort that goes into a headline like this is unreal.”

Original | Discuss on HN