Dockhero is an add-on which turns any Docker image into a microservice attached to your Heroku app
If you think of Heroku add-ons in general as of boxes with some useful mechanisms inside (like databases, log analyzers, messengers etc.), then Dockhero is an empty box where you can put your own mechanism described by docker-compose.yml.
When you add Dockhero add-on to your Heroku application, a new Docker cluster (currently consisting of a single Swarm master) is provisioned, and it's address is exposed to your Heroku app via DOCKHERO_HOST environment variable.
We developed a CLI plugin which makes your Docker client talk to Dockhero instead of your default machine:
$ heroku dh:sh Now DOCKER is configured with Dockhero's Swarm endpoint This is a temporary change affecting the current shell session only sh$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Whenever in your console you need to simultaneously use Dockhero and the local Docker, you can use shortcuts:
heroku dh:docker <command> # execute docker <command> on Dockhero cluster heroku dh:compose <command> # call docker-compose <command> on Dockhero cluster
dh:compose shortcut assumes that your stack is named
It also makes your Heroku environment variables available via variables substitution, so that you don't have to commit your secrets into Git.
Dockhero comes with a few features which help your microservice fit comfortably into Heroku ecosystem: