CRANE

Lift containers with ease
Crane is a Docker orchestration tool similar to Docker Compose with extra features.
For example, it offers ultra-fast, dependency-free bind-mounts for Docker on Mac, with a speed boost of at least 10x!
Docker Compose compatible

Crane reads docker-compose.yml files. Alternatively, you can use Crane's own configuration format, which maps more closely to Docker's run command to make it even easier. The CLI interface has similar commands than docker-compose, but they differ slightly in semantics. Read the compatibility notes for more information.

Better for development

Instead of detaching from all containers and interleaving the logs (like docker-compose up does), Crane attaches to the target and detaches from the dependencies by default. As a result, using interactive debugging is possible, e.g. if you are using Ruby, pry or byebug work as expected.

Groups

Instead of targeting all configured containers or a single one, Crane supports targeting a group of containers. This works by clustering containers in the configuration into groups.

Custom Commands

Pre-define commands that you run over and over again (like running a server, tests or REPLs) in the configuration. Now they are only a crane cmd away — a perfectly streamlined Docker workflow.

Hooks

Scripts can be run before or after key lifecycle events of containers. They are run synchronously on the host where Crane is installed and may even interrupt the flow by returning a non-zero status. Read more.

Accelerated Mounts with Docker for Mac

For example, booting a vanilla Rails app on a mid-2014 2,6GHz Macbook Pro:

Default > 60s
With Docker :cached option > 15s
Using Crane ~ 1.5s

Typically, the speed gains are even higher in real-world scenarios.

How do accelerated mounts work?

Crane integrates Unison, a file synchronizer. It is executed as a container, so you don't have to install and configure anything.

Every accelerated bind-mount is synced in both ways (unlike rsync!) via a Docker volume to the mounting container.

Crane does this automatically in the background and adjusts the container config on the fly - you shouldn't even notice! Except the speed of course ...

Copyright © 2020 Michael Sauter