启动RabbitMQ Docker容器时如何添加初始用户?

目前,我正在使用来自DockerHub的默认RabbitMQ映像启动RabbitMQ

Docker容器。使用以下命令。

docker run --restart=always \

-d \

-e RABBITMQ_NODENAME=rabbitmq \

-v /opt/docker/rabbitmq/data:/var/lib/rabbitmq/mnesia/rabbitmq \

-p 5672:5672 \

-p 15672:15672 \

--name rabbitmq rabbitmq:3-management

我需要在第一次启动映像时要提供默认用户/和虚拟主机的位置。例如,创建一个默认的“ test-user”。

目前,我必须通过使用管理插件并通过Web ui添加用户/虚拟主机来手动执行此操作。启动RabbitMQ图像时,有什么方法可以提供默认设置吗?

回答:

您可以创建一个简单的Dockerfile来扩展基本映像的功能并创建一个默认用户。您需要的Docker文件如下:

FROM rabbitmq

# Define environment variables.

ENV RABBITMQ_USER user

ENV RABBITMQ_PASSWORD user

ENV RABBITMQ_PID_FILE /var/lib/rabbitmq/mnesia/rabbitmq

ADD init.sh /init.sh

RUN chmod +x /init.sh

EXPOSE 15672

# Define default command

CMD ["/init.sh"]

和init.sh:

#!/bin/sh

# Create Rabbitmq user

( rabbitmqctl wait --timeout 60 $RABBITMQ_PID_FILE ; \

rabbitmqctl add_user $RABBITMQ_USER $RABBITMQ_PASSWORD 2>/dev/null ; \

rabbitmqctl set_user_tags $RABBITMQ_USER administrator ; \

rabbitmqctl set_permissions -p / $RABBITMQ_USER ".*" ".*" ".*" ; \

echo "*** User '$RABBITMQ_USER' with password '$RABBITMQ_PASSWORD' completed. ***" ; \

echo "*** Log in the WebUI at port 15672 (example: http:/localhost:15672) ***") &

# $@ is used to pass arguments to the rabbitmq-server command.

# For example if you use it like this: docker run -d rabbitmq arg1 arg2,

# it will be as you run in the container rabbitmq-server arg1 arg2

rabbitmq-server $@

此脚本还将在端口15672处初始化并公开RabbitMQ Webadmin。

以上是 启动RabbitMQ Docker容器时如何添加初始用户? 的全部内容, 来源链接: utcz.com/qa/432580.html

回到顶部