У нас есть устаревшее приложение, которое я пытаюсь докеризировать. В банке приложения есть и приложение, и 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
В чем здесь может быть проблема?