================Dockerfile1=================
FROM rabbitmq:3-management
MAINTAINER 123 "qyb1234@everbridge.com"
RUN apt-get update
ENV REFERSHED_AT 2015-07-20
RUN apt-get install -y python
ADD rabbitmqadmin /usr/local/bin/rabbitmqadmin
RUN chmod 755 /usr/local/bin/rabbitmqadmin
RUN service rabbitmq-server start && /usr/local/bin/rabbitmqadmin declare queue name=my-new-queue durable=true && service rabbitmq-server stop
RUN rabbitmq-plugins enable --offline rabbitmq_management
EXPOSE 15672
CMD rabbitmq-server==============Dockerfile2===================
FROM rabbitmq:3-management
MAINTAINER 123 "qyb1234@gmail.com"
RUN apt-get update
ENV REFERSHED_AT 2015-07-20
RUN apt-get install -y python
ADD rabbitmqadmin /usr/local/bin/rabbitmqadmin
RUN chmod 755 /usr/local/bin/rabbitmqadmin
RUN rabbitmq-plugins enable --offline rabbitmq_management
EXPOSE 15672
CMD service rabbitmq-server start && /usr/local/bin/rabbitmqadmin declare queue name=my-new-queue durable=true && service rabbitmq-server stop && rabbitmq-server当我使用Dockerfile1时,队列没有声明,但是Dockerfile2可以工作。Dockerfile1和Dockerfile2有什么区别?
发布于 2015-07-21 18:16:31
是的,Dockerfile1和Dockerfile2是有区别的。您在dockerfile2中创建队列之前暴露了端口15672,在dockerfile1中暴露了queue命令之后。实际上Rabbitmqadmin使用HTTP API来创建队列、交换等,如果您应用命令
curl -u guest:guest -XGET http://localhost:15672/api/queues如果您应用以下命令,您将获得所有队列的列表:
curl -i -u guest:guest -H "content-type:application/json" \
-XPUT -d'{"type":"direct","durable":true}' \
http://localhost:15672/api/exchanges/%2f/my-new-exchange它将创建新的exchange my- new -exchange。在不暴露端口的情况下,如何创建队列?有关更多信息,请参阅rabbitmq手册。http://hg.rabbitmq.com/rabbitmq-management/raw-file/3646dee55e02/priv/www-api/help.html
https://stackoverflow.com/questions/31530239
复制相似问题