运行 docker 中的 rabbitmqadmin 失败
Running rabbitmqadmin in docker fails
我无法让 rabbitmqadmin 在我的 rabbitmq 中工作 docker。
我有这个 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"]
像这样构建它:
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
应该可以。
有关详细信息,请参阅 http://docs.docker.com/reference/builder/#cmd。
我将把以下内容留给调试类似问题的其他人:
父图像 rabbitmq:3-management
声明了一个 ENTRYPOINT
,其中 运行 是 docker-entrypoint.sh
脚本。您的 CMD
指令作为参数传递给此 ENTRYPOINT
脚本。脚本中某处出错了。
没有看到脚本,我们无法真正调试问题。但是,一种解决方法是在 Dockerfile 或命令行中覆盖 ENTRYPOINT
指令。例如,如果您 运行:
会发生什么
docker run -d -p 8080:15672 --entrypoint="" myrabbit
请注意,这不是正确的解决方案;您应该尝试使用父图像的 ENTRYPOINT
脚本,或修复它以使其执行您想要的操作。
我无法让 rabbitmqadmin 在我的 rabbitmq 中工作 docker。
我有这个 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"]
像这样构建它:
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
应该可以。
有关详细信息,请参阅 http://docs.docker.com/reference/builder/#cmd。
我将把以下内容留给调试类似问题的其他人:
父图像 rabbitmq:3-management
声明了一个 ENTRYPOINT
,其中 运行 是 docker-entrypoint.sh
脚本。您的 CMD
指令作为参数传递给此 ENTRYPOINT
脚本。脚本中某处出错了。
没有看到脚本,我们无法真正调试问题。但是,一种解决方法是在 Dockerfile 或命令行中覆盖 ENTRYPOINT
指令。例如,如果您 运行:
docker run -d -p 8080:15672 --entrypoint="" myrabbit
请注意,这不是正确的解决方案;您应该尝试使用父图像的 ENTRYPOINT
脚本,或修复它以使其执行您想要的操作。