Learn how to save time, increase accuracy, and boost your business’ efficiency with the help of Docker Compose and Ardoq.

Documentation can be time-consuming and, very often, tedious. With such tasks, we like to automate wherever possible. This is especially true when documenting things that change frequently.

Thanks to our new add-on, we now enable you to automate documentation of infrastructure based on Docker Compose. This is a great way to orchestrate your containers, and is also the ideal basis for automatically generating documentation.

What is Docker Compose?

Docker Compose is a tool specifically designed to help developers run multi-container Docker applications. Compose works in the environments of production, staging, development, testing, and CI workflows.

We have created an add-on that allows you to import your Docker Compose file into Ardoq, meaning you can lean back, and watch your Docker stack being automatically documented and visualized.

The import shows all containers with volumes-from, links, the images used, and also the base images used (as you see in the legend to the right).

Using the Docker Hub API, we also fetch the parent hierarchy of the images in the Docker Compose file, and match that with the image hashes corresponding to all the tags in your repositories. All we need is a list of the repositories you use, and we can automatically discover the tags you depend on.

Below, the whole stack is shown:

The value of automation

Keeping details manually updated in your documentation can easily lead to errors. But, by connecting your CI-system to the Docker Compose add-on, you will never have outdated documentation again.

Automation is simply done with an HTTP POST to our Docker Add-on Service. Here is an example using curl:

The Docker Compose file is in the POST body, and the parameters are as follows:

token: Ardoq API access token (personal)

org: Your organization account name in Ardoq

wsname: Name of the workspace to store the import

repos: Comma separated list of extra repositories to include in Docker parent image hierarchy search

account: Optional Docker HUB account name

password: Optional Docker Hub password

If you’re concerned about security using your docker hub credentials, you can also run the add-on locally using Docker.

Extensions

Have something more you would like to include in the import? The Docker Compose Add-on is open source, and 500 lines of fairly straightforward Clojure code.

Discoveries

We base all our custom images on Alpine Linux, but one of the images that is supposed to inherit from Alpine isn’t connected to the base image. This is because it has been a while since it was created, and uses a different version of alpine 3.2. Docker tags are not static, and can be updated even though the tag can look like a static version. The updated version can contain important security fixes, so it’s a good practise to update regularly.

Let us know

If you have done anything interesting, or need some help getting started, let us know! We love to hear real world usage scenarios, and are happy to help you out if you’re stuck.