So, after my previous slightly ranty post, I’ve been trying out a few different tools and approaches to building containers, attempting to find something which is closer to my idea of what good looks like. One tool stands out from the rest: Habitus.
(Not to be confused with Habitat, an annoyingly similar project with an annoyingly similar name. I have no idea which came first, suffice to say, I had heard of Habitat before and discounted it as being irrelevant to my use cases – and therefore almost overlooked Habitus during my research)
Habitus provides just-enough-Make to bring some sanity to the Docker build process, with the following killer features:
- ability to order container builds by expressing a dependency from one to another
- first-class support for artefacts created during the container build process, which can be extracted and used as input for later builds
- management API to provide build-time secrets into the containers