One problem with the original bootstrap tarballs is that their top-level directory is, depending on tarball's architecture, x86_64/ or i686/. Docker ADD instruction would extract that as it is, while we want the filesystem to start at /. Which is why I wrote fix_tar.py. It will remove input tarball's top-level directory from all its component paths, and save them in the output tarball starting at /. The output tarball name is supposed to be bootstrap.tar.gz,  or you'll have to edit the .dockerignore, which is meant to prevent you from uploading any redundant content to Docker build's context:

*
!bootstrap.tar.gz

Then goes the Dockerfile. It will extract bootstrap.tar.gz making sure you know whether you are building an i686 or x86_64 image, as some further steps depend on that (ARM should be very easy to add if needed), and run some of the typical post-installation actions that we normally do manually. Currently en_US.UTF-8 locale and UTC timezone are assumed. Please change that to your liking. Also, if you think rankmirrors takes too much time, you can hardcode your preferred mirrors, as shown in Dockerfile.snippets.

The size of the resultant image is similar to mkimage-arch.sh output - around 350 MB. The setup works fine in my experience to date. More information is in the project's README.md.

Some minor issues are yet to be sorted out. It seems they do not pose any practical problem, but I'd rather have them clarified, for clarity's sake. Please chime in on the Arch Linux forum, or in the related GitHub ticket comments.