Heroku CLI plugin for Dockhero addon
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Dockhero CLI plugin

Companion CLI plugin to work with Dockhero Heroku addon


heroku plugins:install dockhero


The plugin provides wrappers around docker and docker-compose commands.

 heroku dh:docker  <command> #  wrapper around docker command
 heroku dh:compose <command> #  wrapper around docker-compose command

Please see official Docker guide to find out the full list of available commands

Docker will be configured to work with Dockhero Swarm cluster. docker-compose will also receive these additional arguments:

  --file dockhero-compose.yml  -  to adjust the name of the stackfile
  --project-name dockhero  -  to make docker-compose project name independent from the current directory

The plugin also provides these helper commands:

  dh:env      #  downloads TSL certificates prints out the environment variables to work with Dockhero Swarm
  dh:sh       #  run local shell with environment configured for Dockhero Swarm
  dh:ssh      #  SSH to the Docker machine
  dh:open     #  opens your Dockhero stack in the browser
  dh:wait     #  waits while the provisioning is in progress
  dh:generate #  installs the pre-defined stack - try "helloworld" as an example

Example usage

Generate example stackfile with heroku dh:install. You can find more stackfile examples here

The commands below require that your Dockhero addon provisioning is done. If it is still in progress, you can wait for it to finish with heroku dh:wait or track provisioning progress in Heroku addon dashboard - heroku addons:open dockhero

First you can test the stack by running it in foreground:

heroku dh:compose up

If everything works fine, stop the stack by pressing Ctrl-C and run it in production:

heroku dh:compose start

To check which processes are currently running, use either of these two commands:

heroku dh:compose ps
heroku dh:docker ps

Variables Substitution

docker-compose supports Envrironment Variables Substitution like this:

    - FOO="${FOO}"

Dockhero CLI plugin changes the rules of variable resolution to the following:

  1. Your shell ENV has top priority, e.g. env FOO=bar heroku dh:compose up
  2. Your Heroku app's variables have the next priority, e.g. heroku config:set FOO=bar; heroku dh:compose up
  3. The variables from your .env file have the least priority

Dockhero CLI plugin makes the following environment variables available to the app:


Using with Review Apps

In order to provision Docker-based microservice automatically, you'll need to add docker-compose to your Heroku app using a buildpack:

heroku buildpacks:add https://github.com/dockhero/heroku-buildpack-docker-compose.git
heroku buildpacks:add heroku/nodejs

Now you can use Dockhero CLI within your postdeploy script in package.json (notice how dh-docker and dh-compose binaries are used instead of heroku dh:docker and heroku dh:compose commands):

// package.json
  "dependencies": {
    "dockhero": "^1.0.24"
  "scripts": {
    "postdeploy": "dh-compose up -d"