← All Articles

Introducing Complex Builds for Docker

Khash SajadiKhash Sajadi
Jul 7th 16Updated Jul 26th 17


A great strength of Docker is its simplicity. Dockerfile, the recipe for building a Docker image, is an example of this simplicity. Few commands and a flat structure make it easier to understand and use.

This simplicity however comes with a price: as the requirements for containerised applications become more complex, the simplicity of Dockerfile can become a hinderance in delivering the desired results.

While ago, we embarked on a journey to develop an open source tool for complex builds for Docker. The result was Habitus: a simple yet powerful tool capable of building complex Docker workflows as well as managing secrets and squashing unwanted layers in Docker images and more.

Check out our blog and learn more about Habitus

While Habitus is enjoying success and adoption of an open source project, we are excited to add support for it in our BuildGrid tool at Cloud 66. Combining Habitus with BuildGrid you can now benefit from build chains and workflows, artefact replacement, secret management and layer squashing for your Docker stacks.

Find out more about BuildGrid on our blog

Using Habitus with BuildGrid is very easy: drop your Habitus build.yml file into your project root and tell BuildGrid to use Habitus by adding the following to your service.yml under each applicable service:

use_habitus: true
use_habitus_step: deploy_step

deploy_step is the name of the step in Habitus build.yml which should be taken as the final result of the build process and used for the service.

We hope you enjoy using Habitus alongside BuildGrid. We think this combination gives you the power and flexibility needed for more complex Docker workflows.


Read our help page on Building your Docker services.

Try Cloud 66 for Free, No credit card required