I have a bunch of Docker containers all hooked up using docker-compose (previously fig). I have found that services that advertise themselves as "Docker CI" services are usually just talking about using Docker to run their build workers.<p>I would like a continuous integration service that preserves the Docker build cache between runs, instead of spinning up a completely new worker/filesystem/build context. Otherwise, builds take absolutely forever. Ideally managed (unlike https://github.com/groupon/DotCi, which doesn't come with CircleCI's ready-to-go per-build database).<p>The only thing I've found is TeamCity (old, you can't version build tasks in a yaml file easily like you can with CircleCI, you have to maintain infrastructure, etc). Quay.io doesn't provision a database like CircleCI and Travis do, so you have to bifurcate dev and prod and install one inside the container and run unit tests during the container build (ew - you can't spawn into an unbuilt container to debug things!).<p>How do you run continuous integration on your Docker container cluster?
I think TeamCity can achieve your needs: it has the ability to create a "build chain", where dependent builds can specify "Build on same host as <docker build>" and "Re-use existing (successful) build".<p>I do something similar by provisioning Joyent VM's as a dependency of a build chain that requires a build to be run on those VM's.<p>The most recent TC release can persist your build configuration to VCS (say, a private github proj.), so you do get some level of vcs-managed build configuration.
Drone [0] seems what you would like to use. Define all your containers as service containers and create/define steps to test how those service containers co-operate.
Of course, you must test each service container individually in separate drone builds.<p>[0]: <a href="https://github.com/drone/drone" rel="nofollow">https://github.com/drone/drone</a>