无法在Docker文件中添加rabbitmq用户

我尝试添加一个rabbitmq用户,当我从图像运行一个docker容器,但它抱怨节点已closures:

Error: unable to connect to node rabbit@3af546685019: nodedown DIAGNOSTICS =========== attempted to contact: [rabbit@3af546685019] rabbit@3af546685019: * connected to epmd (port 4369) on 3af546685019 * epmd reports: node 'rabbit' not running at all no other nodes on 3af546685019 * suggestion: start the node current node details: - node name: 'rabbitmq-cli-55@3af546685019' - home dir: /var/lib/rabbitmq - cookie hash: pgr3C5mfbuw86BKnW7cJpw== Error: unable to connect to node rabbit@3af546685019: nodedown 

这里是我的Dockerfile:

 FROM rabbitmq:3.6.14 ADD rabbitmq_users.sh /usr/lib/rabbitmq/bin WORKDIR /usr/lib/rabbitmq/bin RUN rabbitmq-plugins enable --offline rabbitmq_management ENTRYPOINT ["rabbitmq_users.sh"] EXPOSE 4369 25672 5672 15672 

和rabbitmq_users.sh:

 #!/bin/sh echo "Creating a user..." sleep 10 rabbitmqctl add_user rmquser rmquser 2>/dev/null rabbitmqctl set_user_tags rmquser administrator rabbitmqctl set_permissions -p / rmquser ".*" ".*" ".*" 

看起来像从rabbitmq:3.6.14运行rabbitmq-server之前,首先执行rabbitmq_users.sh我inheritance,因为我看不到任何日志,certificaterabbitmq服务器已启动。 例如,如果我不创build禁用此ENTRYPOINT脚本的用户,服务器启动,它工作正常。

有人可以帮我解决这个问题吗?

rabbitmq图像已经有一个入口点定义为ENTRYPOINT ["docker-entrypoint.sh"] 。 在定义入口点时,您将覆盖基础映像中定义的入口点。 因此rabbitmq不会启动。 你需要做的是“追加”你的用户脚本:

 FROM rabbitmq:3.6.14 ADD rabbitmq_users.sh /usr/lib/rabbitmq/bin WORKDIR /usr/lib/rabbitmq/bin RUN rabbitmq-plugins enable --offline rabbitmq_management ENTRYPOINT ["./usr/local/bin/docker-entrypoint.sh rabbitmq-server && ./rabbitmq_users.sh"] EXPOSE 4369 25672 5672 15672 

我可以通过调整我的rabbitmq_users.sh来达到这个效果:

 #!/bin/sh # Create Rabbitmq user (rabbitmqctl add_user rmquser rmquser 2>/dev/null ; \ rabbitmqctl set_user_tags rmquser administrator ; \ rabbitmqctl set_permissions -p / rmquser ".*" ".*" ".*" ; \ echo "User 'rmquser' has been created") & rabbitmq-server 

并使用CMD,而不是ENTRYPOINT,我提供了我的脚本:

 ... CMD ["rabbitmq_users.sh"]