在docker中运行rabbitmqadmin失败

我不能得到rabbitmqadmin在我的rabbitmqdocker工作。

我有这个Dockerfile:

FROM rabbitmq:3-management RUN apt-get update && apt-get install -y python ADD rabbitmqadmin /usr/local/bin/rabbitmqadmin ADD rabbitconf.json /rabbitconf.json RUN chmod 755 /usr/local/bin/rabbitmqadmin CMD ["/usr/local/bin/rabbitmqadmin -q import /rabbitconf.json"] 

像这样构build它:

 docker build --tag=myrabbit . 

像这样运行它:

 docker run -d -p 8080:15672 myrabbit 

它不工作…日志显示:

 /docker-entrypoint.sh: line 8: /usr/local/bin/rabbitmqadmin -q import /rabbitconf.json: No such file or directory 

我究竟做错了什么 ?

BR

你已经混合了CMD指令的shell和exec格式。

 CMD /usr/local/bin/rabbitmqadmin -q import /rabbitconf.json 

应该pipe用。

有关更多信息,请参阅http://docs.docker.com/reference/builder/#cmd

我会留下以下的其他人debugging类似的问题:

父图像rabbitmq:3-management声明了运行docker-entrypoint.sh脚本的docker-entrypoint.sh 。 您的CMD指令作为parameter passing给此ENTRYPOINT脚本。 在脚本的某处,事情出错了。

没有看到脚本,我们不能真正debugging问题。 但是,一种解决方法是在Dockerfile或命令行上覆盖ENTRYPOINT指令。 例如,如果运行:

 docker run -d -p 8080:15672 --entrypoint="" myrabbit 

请注意,这不是正确的解决scheme; 你应该尝试使用父图像的ENTRYPOINT脚本,或者修复它,以便它可以做到你想要的。