RabbitMQ Docker Bash Ошибка сценария -. sh Не найдено - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь создать образ RabbitMQ, который устанавливает плагин rabbitmq_auth_backend_http, а также выполняет приложение java (.jar) через файл сценария bash. Однако, когда я запускаю контейнер, я получаю следующие выходные данные из RabbitMQ:

/usr/local/bin/docker-deploy.sh: 2: /usr/local/bin/docker-deploy.sh: 
: not found

Starting rabbit-sidecar application

Enabling plugins on node rabbit@039e6bd1bbfd:

bbitmq_auth_backend_http

The following plugins have been configured:

  rabbitmq_auth_backend_http

  rabbitmq_management

  rabbitmq_management_agent

  rabbitmq_web_dispatch

Applying plugin configuration to rabbit@039e6bd1bbfd...

The following plugins have been enabled:

  rabbitmq_auth_backend_http

set 4 plugins.

Offline change; changes will take effect at broker restart.

/usr/local/bin/docker-deploy.sh: 4: /usr/local/bin/docker-deploy.sh: rabbitmq-server
: not found

Он также не находит rabbitmq-server, который необходим для перезапуска кролика, чтобы плагин заработал.

Примечание * * * * * * * * * * * * Приложение java, кажется, работает должным образом и просто регистрирует то, что оно обычно регистрирует, когда оно запускается как его собственный контейнер.

Dockerfile

FROM rabbitmq:3.8.2-management

COPY ./rabbitmq.conf /etc/rabbitmq/rabbitmq.conf

RUN apt -y update && apt -y install openjdk-8-jdk
RUN mkdir /sidecar
ADD ./target/demo-0.0.1-SNAPSHOT.jar /sidecar/demo-0.0.1-SNAPSHOT.jar
ADD ./docker-deploy.sh /usr/local/bin/docker-deploy.sh
RUN chmod 755 /usr/local/bin/docker-deploy.sh #755
ENTRYPOINT ["sh", "/usr/local/bin/docker-deploy.sh"]

Script

#!/bin/bash

echo "Starting rabbit-sidecar application"
rabbitmq-plugins enable rabbitmq_auth_backend_http; rabbitmq-server
# starts the sidecar
java -jar /sidecar/demo-0.0.1-SNAPSHOT.jar

Мой оригинальный пользовательский образ, который работал, был таким:

FROM rabbitmq:3.8.2-management

COPY rabbitmq.conf /etc/rabbitmq/rabbitmq.conf

CMD ["sh", "-c", "rabbitmq-plugins enable rabbitmq_auth_backend_http; rabbitmq-server"]

, который работал нормально, но, очевидно, мне нужно было делать то, что я делаю, потому что я хочу иметь возможность запускать другой сервис внутри тот же контейнер, что и требуется.

Я заметил, что в /usr/local/bin есть docker-entrypoint.sh. Это то, что следует рассматривать в этом контексте?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...