This Dockerfile is intended to be used to set up a standalone RabbitMQ queue broker, as well as a base image to set up a cluster with high availability queue support by default (Mirrored queues).
By default, the RabbitMQ broker is started as single node. If you want to start a cluster, you need to use the rabbitmq-cluster Docker image, based on rabbitmq image plus the rabbitmq_peer_discovery_k8s plugin.
This image is prepared to be used on Lagoon. There are therefore some things already done:
Folder permissions are automatically adapted with fix-permissions, so this image will work with a random user.
The file /etc/rabbitmq/definitions.json is parsed through envplate with a container-entrypoint.
Included RabbitMQ default schema (definitions.json)
To enable the support for Mirrored Queues, at least one policymust exist.
In the definitions.json schema file, minimal entities are defined to make the
container run: virtualhost (vhost), username , and password to access management
UI, permissions , and policies.
By default, a policy called lagoon-ha is created at startup, but it is not active because it doesn't match any queue's name pattern (see default Environment Variables).