завершение работы контейнера docker rabbitmqctl зависает «В ожидании завершения работы PID xxx»

#docker #rabbitmq

#docker #rabbitmq

Вопрос:

Пытаюсь установить и настроить rabbitmq внутри контейнера docker. Те же шаги отлично работают на хосте. Но внутри контейнера docker «завершение работы rabbitmqctl» просто зависает там вместе с сообщением. Я застрял на этом в течение нескольких недель. Очень нужно решить эту проблему, чтобы я мог двигаться вперед. Я отправлю подарочную карту Amazon всем, кто может помочь решить проблему!!!!

 Shutting down RabbitMQ node rabbit@dev_moog running at PID 13039
Waiting for PID 13039 to terminate
 

ps -ef показывает процесс с именем «[beam] «, я пытался его уничтожить. Он не умрет.

 ps -ef |egrep "13039|rabbitmqctl" |grep -v grep
moogsoft 13039     1  0 19:15 ?        00:00:03 [beam] <defunct>
moogsoft 15137 12765  0 19:15 pts/0    00:00:00 /home/moogsoft//cots/erlang/lib/erlang/erts-8.3/bin/beam.smp -B -- -root /home/moogsoft//cots/erlang/lib/erlang -progname erl -- -home /home/moogsoft -- -boot start_clean -noshell -noinput -noshell -hidden -smp enable -kernel inet_dist_listen_min 35672 -kernel inet_dist_listen_max 35682 -sasl errlog_type error -mnesia dir "/home/moogsoft/var/lib/rabbitmq/mnesia/rabbit@dev_moog" -run escript start -escript main rabbitmqctl_escript -extra /home/moogsoft/cots/rabbitmq-server/escript/rabbitmqctl shutdown
 

Комментарии:

1. Вам не нужно запускать подобные команды внутри контейнера (обычно вам вообще не нужна оболочка внутри контейнера). Просто docker stop и docker rm контейнер.

2. Это часть процесса сборки образа docker. Я пытаюсь создать изображение с помощью rabbitmq для создания изображения. Так что это часть установки приложения, которое вы собираетесь использовать.

3. Обычно вы запускаете RabbitMQ и другие (длительные, с отслеживанием состояния) процессы поддержки в отдельных контейнерах. Используйте такой инструмент, как Docker Compose, для запуска rabbitmq контейнера вместе с контейнером вашего приложения. Не пытайтесь упаковывать или запускать несколько объектов в одном контейнере.