Ошибка «Activemq not found» после запуска пользовательского Docker образа - PullRequest
0 голосов
/ 18 февраля 2020

У нас есть устаревшее приложение, которое я пытаюсь докеризировать. В банке приложения есть и приложение, и activemq, объединенные вместе. (Мы не можем изменить способ его построения). И имеет определенные этапы установки. Для этого я создал следующий исходный Dockerfile, однако при запуске образа у меня возникает проблема (упомянутая после Dockerfile).

Dockerfile выглядит следующим образом:

FROM registry:4000/openjdk:8-jre-alpine

RUN addgroup -S appuser && adduser -S -G appuser appuser

ADD ./fe.jar /home/appuser

RUN chmod +x /home/appuser/fe.jar \
&& chown appuser:appuser /home/appuser/fe.jar

USER appuser

RUN ["java", "-jar", "/home/appuser/fe.jar", "-i"]

WORKDIR /home/appuser/fe/activemq/bin

CMD ["/bin/sh", "-c", "activemq"]

Команда RUN извлекает приложение и activemq из этого местоположения в папку с именем fe.

Кажется, что WORKDIR устанавливает работу непосредственно в activemq / bin. Я подтвердил это с помощью скрипта sh, который запускается при запуске образа. В скрипте sh я запускаю команды ls и pwd, чтобы увидеть содержимое и местоположение.

Однако, когда я запускаю образ, который запускает команду CMD, я получаю сообщение об ошибке:

/bin/sh: activemq: not found

В чем здесь может быть проблема?

Ответы [ 2 ]

0 голосов
/ 19 февраля 2020

Нашел проблему. Сценарий activemq начинается с #! / Bin / bash, и я пытаюсь запустить его, используя sh. Мне нужно сначала установить bash в образе, а затем запустить скрипт activemq, используя его. Я получил подсказку из этого ответа: docker скрипт alpine / bin / sh. sh не найден Теперь он продвинулся вперед, однако контейнер сразу после запуска умирает. Не уверен, в чем проблема. Даже не дает никакой ошибки.

0 голосов
/ 18 февраля 2020

Если activemq является исполняемым файлом в вашем каталоге bin (а не в PATH), вам необходимо отредактировать CMD:

CMD ["/bin/sh", "-c", "./activemq"]

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

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