From 0d1a9d39a7a6286613fe412ce2f144612cea2e3b Mon Sep 17 00:00:00 2001 From: Bitnami Bot Date: Tue, 17 Mar 2026 01:47:03 +0000 Subject: [PATCH] [bitnami/rabbitmq] Release 4.2.5-debian-12-r0 Signed-off-by: Bitnami Bot --- bitnami/rabbitmq/4.2/debian-12/Dockerfile | 10 +- bitnami/rabbitmq/README.md | 338 +--------------------- 2 files changed, 17 insertions(+), 331 deletions(-) diff --git a/bitnami/rabbitmq/4.2/debian-12/Dockerfile b/bitnami/rabbitmq/4.2/debian-12/Dockerfile index 1a40ec4055091..b6efde291772e 100644 --- a/bitnami/rabbitmq/4.2/debian-12/Dockerfile +++ b/bitnami/rabbitmq/4.2/debian-12/Dockerfile @@ -7,13 +7,13 @@ ARG DOWNLOADS_URL="downloads.bitnami.com/files/stacksmith" ARG TARGETARCH LABEL org.opencontainers.image.base.name="docker.io/bitnami/minideb:bookworm" \ - org.opencontainers.image.created="2026-02-19T04:06:18Z" \ + org.opencontainers.image.created="2026-03-17T01:34:22Z" \ org.opencontainers.image.description="Application packaged by Broadcom, Inc." \ org.opencontainers.image.documentation="https://github.com/bitnami/containers/tree/main/bitnami/rabbitmq/README.md" \ org.opencontainers.image.source="https://github.com/bitnami/containers/tree/main/bitnami/rabbitmq" \ org.opencontainers.image.title="rabbitmq" \ org.opencontainers.image.vendor="Broadcom, Inc." \ - org.opencontainers.image.version="4.2.4" + org.opencontainers.image.version="4.2.5" ENV HOME="/opt/bitnami/rabbitmq/.rabbitmq" \ OS_ARCH="${TARGETARCH:-amd64}" \ @@ -30,7 +30,7 @@ RUN --mount=type=secret,id=downloads_url,env=SECRET_DOWNLOADS_URL \ mkdir -p /tmp/bitnami/pkg/cache/ ; cd /tmp/bitnami/pkg/cache/ || exit 1 ; \ COMPONENTS=( \ "erlang-27.3.4-3-linux-${OS_ARCH}-debian-12" \ - "rabbitmq-4.2.4-0-linux-${OS_ARCH}-debian-12" \ + "rabbitmq-4.2.5-0-linux-${OS_ARCH}-debian-12" \ ) ; \ for COMPONENT in "${COMPONENTS[@]}"; do \ if [ ! -f "${COMPONENT}.tar.gz" ]; then \ @@ -52,9 +52,9 @@ RUN /opt/bitnami/scripts/locales/generate-locales.sh COPY rootfs / RUN /opt/bitnami/scripts/rabbitmq/postunpack.sh -ENV APP_VERSION="4.2.4" \ +ENV APP_VERSION="4.2.5" \ BITNAMI_APP_NAME="rabbitmq" \ - IMAGE_REVISION="1" \ + IMAGE_REVISION="0" \ LANG="en_US.UTF-8" \ LANGUAGE="en_US:en" diff --git a/bitnami/rabbitmq/README.md b/bitnami/rabbitmq/README.md index 258449afb094a..a62e988bd6ccd 100644 --- a/bitnami/rabbitmq/README.md +++ b/bitnami/rabbitmq/README.md @@ -1,7 +1,5 @@ # Bitnami Secure Image for RabbitMQ -## What is RabbitMQ? - > RabbitMQ is an open source general-purpose message broker that is designed for consistent, highly-available messaging scenarios (both synchronous and asynchronous). [Overview of RabbitMQ](https://www.rabbitmq.com) @@ -66,19 +64,17 @@ cd bitnami/APP/VERSION/OPERATING-SYSTEM docker build -t bitnami/APP:latest . ``` +## Using `docker-compose.yaml` + +Please be aware this file has not undergone internal testing. Consequently, we advise its use exclusively for development or testing purposes. For production-ready deployments, we highly recommend utilizing its associated [Bitnami Helm chart](https://github.com/bitnami/charts/tree/main/bitnami/rabbitmq). + ## Persisting your application If you remove the container all your data will be lost, and the next time you run the image the database will be reinitialized. To avoid this loss of data, you should mount a volume that will persist even after the container is removed. For persistence you should mount a directory at the `/bitnami/rabbitmq/mnesia` path. If the mounted directory is empty, it will be initialized on the first run. -```console -docker run \ - -v /path/to/rabbitmq-persistence:/bitnami/rabbitmq/mnesia \ - bitnami/rabbitmq:latest -``` - -> NOTE: As this is a non-root container, the mounted files and directories must have the proper permissions for the UID `1001`. +> **NOTE** As this is a non-root container, the mounted files and directories must have the proper permissions for the UID `1001`. ## Connecting to other containers @@ -86,73 +82,14 @@ Using [Docker container networking](https://docs.docker.com/engine/userguide/net Containers attached to the same network can communicate with each other using the container name as the hostname. -### Using the Command Line - -In this example, we will create a RabbitMQ client instance that will connect to the server instance that is running on the same docker network as the client. - -#### Step 1: Create a network - -```console -docker network create app-tier --driver bridge -``` - -#### Step 2: Launch the RabbitMQ server instance - -Use the `--network app-tier` argument to the `docker run` command to attach the RabbitMQ container to the `app-tier` network. - -```console -docker run -d --name rabbitmq-server \ - --network app-tier \ - bitnami/rabbitmq:latest -``` - -#### Step 3: Launch your RabbitMQ client instance - -Finally we create a new container instance to launch the RabbitMQ client and connect to the server created in the previous step: - -```console -docker run -it --rm \ - --network app-tier \ - bitnami/rabbitmq:latest rabbitmqctl -n rabbit@rabbitmq-server status -``` - -### Using a Docker Compose file - -When not specified, Docker Compose automatically sets up a new network and attaches all deployed services to that network. However, we will explicitly define a new `bridge` network named `app-tier`. In this example we assume that you want to connect to the RabbitMQ server from your own custom application image which is identified in the following snippet by the service name `myapp`. - -```yaml -version: '2' - -networks: - app-tier: - driver: bridge - -services: - rabbitmq: - image: bitnami/rabbitmq:latest - networks: - - app-tier - myapp: - image: YOUR_APPLICATION_IMAGE - networks: - - app-tier -``` - -> **IMPORTANT**: -> -> 1. Please update the **YOUR_APPLICATION_IMAGE** placeholder in the above snippet with your application image -> 2. In your application container, use the hostname `rabbitmq` to connect to the RabbitMQ server - -Launch the containers using: - -```console -docker-compose up -d -``` - ## Configuration +The following section describes the supported environment variables + ### Environment variables +The following tables list the main variables you can set. + #### Customizable environment variables | Name | Description | Default Value | @@ -227,157 +164,13 @@ docker-compose up -d | `RABBITMQ_MNESIA_BASE` | Path to RabbitMQ mnesia directory. | `$RABBITMQ_DATA_DIR` | | `RABBITMQ_COMBINED_CERT_PATH` | Path to the RabbitMQ server SSL certificate key file. | `${RABBITMQ_COMBINED_CERT_PATH:-/tmp/rabbitmq_combined_keys.pem}` | -When you start the rabbitmq image, you can adjust the configuration of the instance by passing one or more environment variables either on the docker-compose file or on the `docker run` command line. If you want to add a new environment variable: - -- For docker-compose add the variable name and value under the application section in the [`docker-compose.yml`](https://github.com/bitnami/containers/blob/main/bitnami/rabbitmq/docker-compose.yml) file present in this repository: : - -```yaml -rabbitmq: - ... - environment: - - RABBITMQ_PASSWORD=my_password - ... -``` - -- For manual execution add a `-e` option with each variable and value. - -### Setting up a cluster - -#### Using Docker Compose - -This is the simplest way to run RabbitMQ with clustering configuration: - -##### Step 1: Add a stats node in your `docker-compose.yml` - -Copy the snippet below into your docker-compose.yml to add a RabbitMQ stats node to your cluster configuration. - -```yaml -version: '2' - -services: - stats: - image: bitnami/rabbitmq:latest - environment: - - RABBITMQ_NODE_TYPE=stats - - RABBITMQ_NODE_NAME=rabbit@stats - - RABBITMQ_ERL_COOKIE=s3cr3tc00ki3 - ports: - - 15672:15672 - volumes: - - rabbitmqstats_data:/bitnami/rabbitmq/mnesia -``` - -> **Note:** The name of the service (**stats**) is important so that a node could resolve the hostname to cluster with. (Note that the node name is `rabbit@stats`) - -##### Step 2: Add a queue node in your configuration - -Update the definitions for nodes you want your RabbitMQ stats node cluster with. - -```yaml - queue-disc1: - image: bitnami/rabbitmq:latest - environment: - - RABBITMQ_NODE_TYPE=queue-disc - - RABBITMQ_NODE_NAME=rabbit@queue-disc1 - - RABBITMQ_CLUSTER_NODE_NAME=rabbit@stats - - RABBITMQ_ERL_COOKIE=s3cr3tc00ki3 - volumes: - - rabbitmqdisc1_data:/bitnami/rabbitmq/mnesia -``` - -> **Note:** Again, the name of the service (**queue-disc1**) is important so that each node could resolve the hostname of this one. - -We are going to add a ram node too: - -```yaml - queue-ram1: - image: bitnami/rabbitmq:latest - environment: - - RABBITMQ_NODE_TYPE=queue-ram - - RABBITMQ_NODE_NAME=rabbit@queue-ram1 - - RABBITMQ_CLUSTER_NODE_NAME=rabbit@stats - - RABBITMQ_ERL_COOKIE=s3cr3tc00ki3 - volumes: - - rabbitmqram1_data:/bitnami/rabbitmq/mnesia -``` - -##### Step 3: Add the volume description - -```yaml -volumes: - rabbitmqstats_data: - driver: local - rabbitmqdisc1_data: - driver: local - rabbitmqram1_data: - driver: local -``` - -The `docker-compose.yml` will look like this: - -```yaml -version: '2' - -services: - stats: - image: bitnami/rabbitmq:latest - environment: - - RABBITMQ_NODE_TYPE=stats - - RABBITMQ_NODE_NAME=rabbit@stats - - RABBITMQ_ERL_COOKIE=s3cr3tc00ki3 - ports: - - 15672:15672 - volumes: - - rabbitmqstats_data:/bitnami/rabbitmq/mnesia - queue-disc1: - image: bitnami/rabbitmq:latest - environment: - - RABBITMQ_NODE_TYPE=queue-disc - - RABBITMQ_NODE_NAME=rabbit@queue-disc1 - - RABBITMQ_CLUSTER_NODE_NAME=rabbit@stats - - RABBITMQ_ERL_COOKIE=s3cr3tc00ki3 - volumes: - - rabbitmqdisc1_data:/bitnami/rabbitmq/mnesia - queue-ram1: - image: bitnami/rabbitmq:latest - environment: - - RABBITMQ_NODE_TYPE=queue-ram - - RABBITMQ_NODE_NAME=rabbit@queue-ram1 - - RABBITMQ_CLUSTER_NODE_NAME=rabbit@stats - - RABBITMQ_ERL_COOKIE=s3cr3tc00ki3 - volumes: - - rabbitmqram1_data:/bitnami/rabbitmq/mnesia - -volumes: - rabbitmqstats_data: - driver: local - rabbitmqdisc1_data: - driver: local - rabbitmqram1_data: - driver: local -``` +When you start the rabbitmq image, you can adjust the configuration of the instance by passing one or more environment variables either on the docker-compose file or on the `docker run` command line. ### Configuration file A custom `rabbitmq.conf` configuration file can be mounted to the `/bitnami/rabbitmq/conf` directory. If no file is mounted, the container will generate a default one based on the environment variables. You can also mount on this directory your own `advanced.config` (using classic Erlang terms) and `rabbitmq-env.conf` configuration files. -As an alternative, you can also mount a `custom.conf` configuration file and mount it to the `/bitnami/rabbitmq/conf` directory. In this case, the default configuation file will be generated and, later on, the settings available in the `custom.conf` configuration file will be merged with the default ones. For example, in order to override the `listeners.tcp.default` directive: - -#### Step 1: Write your custom.conf configuation file with the following content - -```ini -listeners.tcp.default=1337 -``` - -#### Step 2: Run RabbitMQ mounting your custom.conf configuation file - -```console -docker run -d --name rabbitmq-server \ - -v /path/to/custom.conf:/bitnami/rabbitmq/conf/custom.conf:ro \ - bitnami/rabbitmq:latest -``` - -After that, your changes will be taken into account in the server's behaviour. +As an alternative, you can also mount a `custom.conf` configuration file and mount it to the `/bitnami/rabbitmq/conf` directory. In this case, the default configuation file will be generated and, later on, the settings available in the `custom.conf` configuration file will be merged with the default ones. ### FIPS configuration in Bitnami Secure Images @@ -406,47 +199,7 @@ LDAP configuration parameters must be specified if you wish to enable LDAP suppo > Note: To escape `$` in `RABBITMQ_LDAP_USER_DN_PATTERN` you need to use `$$`. -Follow these instructions to use the [Bitnami Docker OpenLDAP](https://github.com/bitnami/containers/blob/main/bitnami/openldap) image to create an OpenLDAP server and use it to authenticate users on RabbitMQ: - -### Step 1: Create a network and start an OpenLDAP server - -```console -docker network create app-tier --driver bridge -docker run --name openldap \ - --env LDAP_ADMIN_USERNAME=admin \ - --env LDAP_ADMIN_PASSWORD=adminpassword \ - --env LDAP_USERS=user01,user02 \ - --env LDAP_PASSWORDS=password1,password2 \ - --network app-tier \ - bitnami/openldap:latest -``` - -### Step 3: Create an advanced.config file - -To configure authorization, you need to create an advanced.config file, following the [clasic config format](https://www.rabbitmq.com/configure.html#erlang-term-config-file), and add your authorization rules. For instance, use the file below to grant all users the ability to use the management plugin, but make none of them administrators: - -```text -[{rabbitmq_auth_backend_ldap,[ - {tag_queries, [{administrator, {constant, false}}, - {management, {constant, true}}]} -]}]. -``` - -More information at [https://www.rabbitmq.com/ldap.html#authorisation](https://www.rabbitmq.com/ldap.html#authorisation). - -### Step 4: Start RabbitMQ with LDAP support - -```console -docker run --name rabbitmq \ - --env RABBITMQ_ENABLE_LDAP=yes \ - --env RABBITMQ_LDAP_TLS=no \ - --env RABBITMQ_LDAP_SERVERS=openldap \ - --env RABBITMQ_LDAP_SERVERS_PORT=1389 \ - --env RABBITMQ_LDAP_USER_DN_PATTERN=cn=$${username},ou=users,dc=example,dc=org \ - --network app-tier \ - -v /path/to/your/advanced.config:/bitnami/rabbitmq/conf/advanced.config:ro \ - bitnami/rabbitmq:latest -``` +Follow these instructions to use the [Bitnami Docker OpenLDAP](https://github.com/bitnami/containers/blob/main/bitnami/openldap) image to create an OpenLDAP server and use it to authenticate users on RabbitMQ. ## Logging @@ -464,67 +217,6 @@ docker-compose logs rabbitmq You can configure the containers [logging driver](https://docs.docker.com/engine/admin/logging/overview/) using the `--log-driver` option if you wish to consume the container logs differently. In the default configuration docker uses the `json-file` driver. -## Maintenance - -### Upgrade this application - -Bitnami provides up-to-date versions of RabbitMQ, including security patches, soon after they are made upstream. We recommend that you follow these steps to upgrade your container. - -#### Step 1: Get the updated image - -```console -docker pull bitnami/rabbitmq:latest -``` - -or if you're using Docker Compose, update the value of the image property to -`bitnami/rabbitmq:latest`. - -#### Step 2: Stop and backup the currently running container - -Stop the currently running container using the command - -```console -docker stop rabbitmq -``` - -or using Docker Compose: - -```console -docker-compose stop rabbitmq -``` - -Next, take a snapshot of the persistent volume `/path/to/rabbitmq-persistence` using: - -```console -rsync -a /path/to/rabbitmq-persistence /path/to/rabbitmq-persistence.bkp.$(date +%Y%m%d-%H.%M.%S) -``` - -#### Step 3: Remove the currently running container - -```console -docker rm -v rabbitmq -``` - -or using Docker Compose: - -```console -docker-compose rm -v rabbitmq -``` - -#### Step 4: Run the new image - -Re-create your container from the new image. - -```console -docker run --name rabbitmq bitnami/rabbitmq:latest -``` - -or using Docker Compose: - -```console -docker-compose up rabbitmq -``` - ## Notable changes ### 4.1.1-debian-12-r3 @@ -591,12 +283,6 @@ The following parameters have been renamed: | `RABBITMQ_CLUSTERNODENAME` | `RABBITMQ_CLUSTER_NODE_NAME` | | `RABBITMQ_MANAGERPORT` | `RABBITMQ_MANAGER_PORT` | -## Using `docker-compose.yaml` - -Please be aware this file has not undergone internal testing. Consequently, we advise its use exclusively for development or testing purposes. For production-ready deployments, we highly recommend utilizing its associated [Bitnami Helm chart](https://github.com/bitnami/charts/tree/main/bitnami/rabbitmq). - -If you detect any issue in the `docker-compose.yaml` file, feel free to report it or contribute with a fix by following our [Contributing Guidelines](https://github.com/bitnami/containers/blob/main/CONTRIBUTING.md). - ## License Copyright © 2026 Broadcom. The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.