2015-03-21 2 views
0

Я не могу заставить rabbitmqadmin работать в моем докере для кролика.Запуск rabbitmqadmin in 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

ответ

1

Вы перепутали оболочки и EXEC форматы для CMD инструкции.

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 в качестве аргумента. Где-то в сценарии все идет не так.

Не видя сценарий, мы не можем отладить проблему. Однако одним из способов было бы переопределить команду ENTRYPOINT либо в вашем файле Docker, либо в командной строке. Например, что произойдет, если вы запустите:

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

Обратите внимание, что это неправильное решение; вы должны попытаться использовать сценарий ENTRYPOINT родительского изображения или исправить его так, чтобы он выполнял то, что вы хотите.

+0

Hi Adrian за ваш ответ – user3594184

+0

Привет, Адриан, за ваш ответ. Я пробовал ваше предложение, и я получаю ту же ошибку. Управление кроликом: 3 - официальное изображение из rabbitmq, а entrypoint.sh: '#!/Bin/bash set -e if [" $ 1 "= 'rabbitmq-server']; затем \t Чаун -R RabbitMQ/вар/Библиотека/RabbitMQ фи Exec "$ @" ' Dockerfile здесь (https://github.com/docker-library/rabbitmq/blob/46b8c75905e6666eb737c17a5d813cf41efbe4f7/Dockerfile) Я также попытался изменить CMD на это, но та же ошибка: 'CMD [ "/ rabbitmqadmin", "-q", "импорт", «/rabbitconf.json"]' я думаю это неправильно? Это возможно ? – user3594184

+0

Хорошо, просто отлаживайте его из оболочки: 'docker run -it myrabbit/bin/bash', затем попробуйте запустить'/usr/local/bin/rabbitmqadmin -q import/rabbitconf.json' и проверить правильность синтаксиса и файлы доступны. –

Смежные вопросы