来自Dockerfile的rabbitMQ nodedown错误

时间:2015-06-18 15:24:15

标签: ubuntu docker rabbitmq dockerfile rabbitmqctl

构建此Dockerfile时,当它到达命令时:

rabbitmqctl status

它返回:

Error: unable to connect to node rabbit@d3659c5e113e: nodedown

DIAGNOSTICS
===========

nodes in question: [rabbit@d3659c5e113e]

hosts, their running nodes and ports:
- d3659c5e113e: [{rabbitmqctl20,52855}]

current node details:
- node name: rabbitmqctl20@d3659c5e113e

我不知道从哪里开始。

这是我正在使用的Docker文件:

FROM ubuntu
MAINTAINER Will Mayger
RUN echo "deb http://archive.ubuntu.com/ubuntu/ $(lsb_release -sc) main universe" >> /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y tar git curl nano wget dialog net-tools build-essential
RUN apt-get install -y python python-dev python-distribute python-pip
RUN wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
RUN apt-key add rabbitmq-signing-key-public.asc
RUN sudo apt-get -y install rabbitmq-server
RUN sudo rabbitmqctl status
RUN sudo rabbitmqctl add_user test testpass1
RUN sudo rabbitmqctl add_vhost myvhost
RUN sudo rabbitmqctl set_permissions -p myvhost test ".*" ".*" ".*"
RUN sudo rabbitmq-server
RUN git clone https://github.com/CanopyCloud/microservice-python
RUN pip install -r /microservice-python/requirements.txt
EXPOSE 80
WORKDIR /microservice-python/

CMD python /microservice-python/server.py

1 个答案:

答案 0 :(得分:0)

这是因为rabitmq服务器没有运行。

Docker在流程级别工作。您的Dockerfile的每一行都是隔离的,只会按您的要求运行。因此,当您运行rabbitmqctl status时,它会显示节点已关闭,因为容器中没有其他进程在运行。

如果您执行此类操作,则可以:

RUN rabbitmq-server& sleep 1 && rabbitmqctl status

旁注:您不需要sudo。你已经是root了。

此外,即使您需要自定义更改,也可以重复使用官方图像。这是一个很好的基础:https://registry.hub.docker.com/_/rabbitmq/