gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 12:35:25 26 4
gpt4 key购买 nike

目前我正在使用来自 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

我需要在第一次启动镜像时提供默认用户/和虚拟主机。例如创建一个默认的“测试用户”。

目前我必须通过使用管理插件并通过 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 网络管理员。

关于docker - 启动 RabbitMQ Docker 容器时如何添加初始用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30747469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com