
If you’re not familiar with docker, I’d suggest reading a bit about it. This means we can load a clean machine for every build, essentially for free. It uses clever caching to “boot” a new machine environment in just seconds, even if the docker image is many Gb of data. You can very quickly boot up a different cloud instance if you need extra build capacity, or you want to try out a more powerful machine. You can simply boot up and exact replica of the build machine on your local computer to debug. If your change works on the build server, then it’s a local issue, end of story.ĭocker makes it incredibly easy to debug issues. Docker gives us the peace of mind that our builds are clean.


In the past I’ve maintained build servers that maintain state between builds, and inevitably these servers drift into a bad state. We use docker because it makes it easy, and very quick to boot up a clean environment for our builds.
