Как запускать сценарии оболочки вместе с Java-приложениями, используя Docker? - PullRequest
0 голосов
/ 10 февраля 2019

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

FROM openjdk:latest
COPY ./mycluster /dir/latest/
COPY ./app1.jar /dir/latest/
COPY ./app2.jar /dir/latest/ 
CMD ["sh", "-c", "cd /dir/latest/ ;./local_cluster_startup.sh ./;sleep 5 ;java -jar app2.jar;sleep 5;java -jar app1.jar;"]

После построения образа докера и запуска следующей команды попытка запуска контейнера докера: nsdap вывод

sh: 1: cd: can't cd to /dir/latest/
sh: 1: ./local_cluster_startup.sh: not found
Error: Unable to access jarfile app2.jar
Error: Unable to access jarfile app1.jar

Может кто-нибудь сказать, что яздесь что-то не так?

Я ищу минимальный образ докера, который мог бы выполнять java-файлы и сценарии оболочки.Можете ли вы помочь мне?Спасибо

1 Ответ

0 голосов
/ 10 февраля 2019

Используйте WORKDIR (https://docs.docker.com/engine/reference/builder/#workdir), чтобы переключиться в каталог "/ dir / latest". Затем вы можете запускать свои команды из этого каталога

WORKDIR /dir/latest
CMD ["./local_cluster_startup.sh ;sleep 5 ;java -jar app2.jar;sleep 5;java -jar app1.jar;"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...