首页 > 解决方案 > 保持 Rabbitmq 在 Docker 容器中运行

问题描述

我用 Dockerfile 制作了一个 Docker 映像。我使用 RUN 命令安装了 Rabbitmq:

&& dnf -y --nogpgcheck install rabbitmq-server \
&& rabbitmq-plugins enable rabbitmq_management \

我尝试在 supervisord.d/ 中创建一个 .ini 文件,甚至在容器中复制并启动一个脚本,以便 Rabbitmq 可以启动、添加一个新用户并一直运行。但是当我启动容器时,Rabbitmq 没有运行。

init.sh 文件(如果我在进入容器后手动运行它,它运行良好):

(
rabbitmq-server start & \
sleep 5 ; \
rabbitmqctl add_user admin mypass 2>/dev/null ; \
rabbitmqctl set_user_tags admin administrator ; \
rabbitmqctl set_permissions -p / admin  ".*" ".*" ".*" ;
)

现在,supervisord.d/rabbitmq-server.ini 文件:

[program:rabbitmq-server]
;directory=/usr/local/
command=/sbin/rabbitmq-server -D
autostart=true
autorestart=true
startsecs=10
redirect_stderr=true
priority=990

注意:我将 rabbitmq.config 文件复制到容器中以更改侦听端口。

我怎么能像我一样继续拥有这些新端口并添加这个新用户,并在容器启动时设法运行 Rabbitmq(我现在不能做什么)?

谢谢你。

标签: dockerrabbitmqdockerfile

解决方案


我不知道为什么 Docker 不能启动这个……但是 Kubernetes 可以。这对我来说已经足够了。如果有人知道为什么,我想听听。但实际上,我会更深入地进行测试。

谢谢您的帮助。


推荐阅读