Introducing Complex Builds for Docker

What happens when you need Docker builds that are more complex than the tool allows? Find out how to address this situation in this article.

· DevOps Zone · News

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 containerized applications become more complex, the simplicity of Dockerfile can become a hindrance in delivering the desired results.

Awhile 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.

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.

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.

Published at DZone with permission of Khash Sajadi, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.