Basically, a RabbitMQ image that uses confd to capture some environment variables to set itself up. All sorts of queues, bindings, vhosts, users, etc can be set up using this method.

Quick link to a advanced (if work-in-progress) RabbitMQ docker container.

Key features

  • Advanced configuration options can be passed in using environment variables
  • Can be automatically clustered

In practice this container was used in an EC2 environment, where EC2 neighbours were detected by the host. The resolvable hostnames to neighbour IPs were passed in as part of the docker run command using the add-host option.

For example, for a EC2 host with name ip-10.0.0.1 and neighbours ip-10.0.0.2 and ip-10.0.0.3

For further documentation and code, see https://github.com/ministryofjustice/docker-rabbitmq