How to start rabbitmq-server in openshift ? Only root or rabbitmq can run rabbitmq-server

157 views
Skip to first unread message

xiade...@gmail.com

unread,
Mar 13, 2019, 8:55:46 PM3/13/19
to rabbitmq-users
Hi, I want to ask a question about rabbitmq, I want to start it in openshift.
But when I run the command "rabbitmq-server start", always throw Only root or rabbitmq can run rabbitmq-server
Here is the detail error:
/usr/sbin/rabbitmq-server: line 55: cd: /var/lib/rabbitmq: Not a directory

id
: cannot find name for user ID 1004680000

id
: cannot find name for user ID 1004680000

mkdir
: cannot create directory ‘/var/lib’: Permission denied

Failed to create directory: /var/lib/rabbitmq/mnesia

And Here is my Dockerfile:

FROM containers.cisco.com/oneidentity/centos7-java:v2

ENV RABBIT_MQ_VERSION_VERSION
=3.7.13


RUN yum install sudo -y


COPY erlang-21.2.6-1.el7.x86_64.rpm /tmp/erlang-21.2.6-1.el7.x86_64.rpm

RUN rpm
-ivh /tmp/erlang-21.2.6-1.el7.x86_64.rpm


COPY socat-1.7.3.2-2.el7.x86_64.rpm /tmp/socat-1.7.3.2-2.el7.x86_64.rpm

RUN rpm
-ivh /tmp/socat-1.7.3.2-2.el7.x86_64.rpm


COPY rabbitmq-server-3.7.13-1.el7.noarch.rpm /tmp/rabbitmq-server-3.7.13-1.el7.noarch.rpm

RUN rpm
-ivh /tmp/rabbitmq-server-3.7.13-1.el7.noarch.rpm


RUN /usr/sbin/rabbitmq-plugins list <<<'y'

RUN
/usr/sbin/rabbitmq-plugins enable --offline rabbitmq_mqtt
rabbitmq_stomp rabbitmq_management  rabbitmq_management_agent
rabbitmq_federation rabbitmq_federation_management
<<<'y'


ADD scripts/startRabbitmq.sh /usr/bin/startRabbitmq.sh


ADD supervisor/rabbitmq.conf /etc/supervisor/conf.d/


ADD consul/servicediscovery.json /etc/consul/


ADD config/rabbitmq.conf /etc/rabbitmq/


#USER root

#RUN echo "rabbitmq:rabbitmq" | chpasswd


RUN chmod a+x /usr/bin/startRabbitmq.sh &&

chmod a
+x /etc/supervisor/conf.d &&

chmod a
+x /etc/consul &&

chmod a
+x /etc/rabbitmq &&

chmod a
+x /usr/bin/startRabbitmq.sh &&

chmod a
+x /etc/rabbitmq &&

chmod a
+x /usr/sbin/rabbitmq-server &&

chmod
-R 777 /usr/sbin/rabbitmq-server &&

chmod
-R 777 /usr/sbin/rabbitmq-server &&

chmod
-R 777 /usr/sbin/rabbitmq-server &&

rm
-rf /tmp/erlang-21.2.6-1.el7.x86_64.rpm &&

rm
-rf /tmp/socat-1.7.3.2-2.el7.x86_64.rpm &&

rm
-rf /tmp/rabbitmq-server-3.7.13-1.el7.noarch.rpm


#ENV HOME /var/lib/rabbitmq


RUN mkdir -p /var/lib/rabbitmq /etc/rabbitmq

&& chown -R rabbitmq:rabbitmq /var/lib/rabbitmq /etc/rabbitmq

&& chmod -R 777 /var/lib/rabbitmq /etc/rabbitmq

#VOLUME /var/lib/rabbitmq


RUN echo "rabbitmq:rabbitmq" | chpasswd

USER rabbitmq


EXPOSE 5672

EXPOSE
15672

Enter code here...

Here is my start.sh
IP_PORT_NEW='rabbitmqcluster.service.'$data_center'.coi:2181'

echo
'result of rabbitmqcluster ip is:'$IP_PORT_NEW

if [ -z "$IP_PORT_NEW" ]; then

echo
"rabbitmqcluster ip is empty"

else

echo
'get the rabbitmqcluster ips is:' ${IP_PORT_NEW}
sed -i "s,#tcp_listeners#,$IP_PORT_NEW," /etc/rabbitmq/rabbitmq.conf
 service rabbitmq
-server start & /usr/sbin/init
#sleep infinity
tail
-f /dev/null

fi

I start rabbitmq in supervisor.
Thank you for your help.

Michael Klishin

unread,
Mar 14, 2019, 7:03:35 PM3/14/19
to rabbitm...@googlegroups.com
> /var/lib/rabbitmq: Not a directory

is the line you are looking for. RabbitMQ packages generally try to create node's data directory [1]
but depending on how you provision RabbitMQ, your deployment tooling might have to do that.


--
You received this message because you are subscribed to the Google Groups "rabbitmq-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rabbitmq-user...@googlegroups.com.
To post to this group, send email to rabbitm...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--
MK

Staff Software Engineer, Pivotal/RabbitMQ

xiade...@gmail.com

unread,
Apr 17, 2019, 6:56:12 AM4/17/19
to rabbitmq-users
Fine now, thank you so much.
Reply all
Reply to author
Forward
0 new messages