Unofficial Arch Linux images
The images aim to be as plain and no-thrills as possible, what you'd get from
pacstrap. This does not mean they are small, however. The
weights in at about 100 MB, which is twice
ubuntu:latest at the time of
However, these images can make very convenient prototype, test and build
environments in combination with Docker tooling, even on non-Linux platforms.
Builds run daily on hardware sponsored by Angry Bytes.
Each architecture is built in 4 variants:
latest: Installation of
base: Derived from
latest, a full installation of
devel: Derived from
base, a full installation of
makepkg: Derived from
devel, an environment for building packages.
Arch Linux tags
makepkg(aliases for x86_64)
When running the i686 images on a x86_64 host, note that the system still
reports x86_64 (e.g. in
uname -m), and tools attempting autodetection may
thus fail. (The default
pacman.conf is setup correctly, however.)
Arch Linux ARM tags
The ARM images contain QEMU static binaries for userland emulation on a x86_64
host, so the images work on systems with binfmt setup in Debian-style. (This
includes Docker for Mac and Docker for Windows.)
The QEMU static binaries are extracted from the qemu-user-static package in
In a directory with a PKGBUILD file, run:
docker run --rm -v "$PWD":/build stephank/archlinux:makepkg
makepkg images expect the build directory to be mounted as
makepkg tool is invoked as
makepkg --noconfirm -s. Any additional
arguments passed to the image are added after the default arguments.
Before the build starts, PGP keys in the PKGBUILD
validpgpkeys array are
fetched from public keyservers, and the package database is refreshed.
Adding a local repository
makepkg images have an additional repository configured:
[makepkg] Server=file:///repo/ SigLevel=Never
When building packages that are interdependent, add them to a repo
and mount it at
/repo to allow them to build.
mkdir repo/ cp mydep/mydep-1.0.0-1-x86_64.pkg.tar.xz repo/ repo-add repo/makepkg.db.tar.gz repo/*.pkg.tar.xz docker run --rm \ -v "$PWD/repo":/repo:ro \ -v "$PWD/myproject":/build \ stephank/archlinux:makepkg
Creating a shared package cache
Pacman downloads can be shared between different containers to save on
bandwidth. Simply create a writable mount at
docker volume create --name pacman-pkg docker run -v pacman-pkg:/var/cache/pacman/pkg ...