I was using the chroot tools for a year and a half or so before that, but had some issues occasionally with things like updating it, or using package caches inside the chroot, or other various things. I do still have the shell script I used at the time, it was called by jenkins and cloned a chroot based off a clean copy and numbered by the jenkins executor to support multiple builds at once. But I managed a few tens of thousands of docker containers for work, and figured I could use a similar build system for the arch packages, and it's been reliable for me since then.
As Doug said, you need to add the packages you build to a repository for the next build to be able to install them, but that part is pretty simple and explained on the arch wiki already. So, in Jenkins I use the build generator plugin, and created a parameterized job (config.xml here: http://hastebin.com/oyuqiwokem.xml) that basically just calls `dmakepkg` on the git checkout for the aur package; you just give the build an aur package name and it will generate the job to track that package and any changes pushed to the AUR and build it. (it polls git once an hour). `dmakepkg` is in the AUR ( https://aur.archlinux.org/packages/dmakepkg-git/ ) and is what I ended up making to build the packages inside a docker container. It supports the same flags as makepkg (just passes them through) but defaults to '--force --syncdeps --noconfirm' unless other flags are specified (no point removing packages since the container is destroyed after use). Uses a slightly modified version of the official docker arch image, and is updated much more often (monthly at least instead of the 3-6 months they take). It auto-detects makepkg configs like SRCDEST/etc and copies it in to the instance and bind mounts the folders specified, as well as the pacman package cache, so all the builds follow the makepkg config on the host, but using everything else from a clean environment. If you make your own repo and add it to your host, you can use `-x` flag to use the host's pacman.conf inside the container.