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".
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.
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.
Comments
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".
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.
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.