首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在码头上运行rabbitmqadmin失败

在码头上运行rabbitmqadmin失败
EN

Stack Overflow用户
提问于 2015-03-21 12:41:54
回答 1查看 2K关注 0票数 0

我不能让狂犬病管理员在我的狂犬病码头工作。

我有一个Dockerfile:

代码语言:javascript
复制
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"]

像这样构建它:

代码语言:javascript
复制
docker build --tag=myrabbit .

像这样运行:

代码语言:javascript
复制
docker run -d -p 8080:15672 myrabbit

不管用..。日志显示:

代码语言:javascript
复制
/docker-entrypoint.sh: line 8: /usr/local/bin/rabbitmqadmin -q import     /rabbitconf.json: No such file or directory

我做错什么了?

BR

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-22 11:07:20

您混淆了CMD指令的shell和exec格式。

代码语言:javascript
复制
CMD /usr/local/bin/rabbitmqadmin -q import /rabbitconf.json

应该行得通。

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

我将为其他调试类似问题的人保留以下内容:

父映像rabbitmq:3-management声明一个运行docker-entrypoint.sh脚本的ENTRYPOINTCMD指令作为参数传递给这个ENTRYPOINT脚本。在剧本里的某个地方,事情出了问题。

如果没有看到脚本,我们就无法真正调试这个问题。但是,一个解决方法是在您的Dockerfile或命令行中重写ENTRYPOINT指令。例如,如果运行:

代码语言:javascript
复制
docker run -d -p 8080:15672 --entrypoint="" myrabbit

请注意,这不是正确的解决方案;您应该尝试使用父映像的ENTRYPOINT脚本,或者修复它,这样它就可以满足您的需要。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29182834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档