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.
Join the DZone community and get the full member experience.Join For Free
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.
Published at DZone with permission of Khash Sajadi, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.