Запуск Python и Java в Docker - PullRequest
       1

Запуск Python и Java в Docker

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

У меня есть образ докера с установленными python и java, и теперь я хочу запустить оба процесса как дочерние процессы docker.

Я проверил этот пост, в котором объясняется, как подготовить образ с установленным докером и питоном.Это не объясняет, как заставить их обоих работать. Как запустить Docker с Python и Java?

Я проверил, как запустить несколько процессов в Docker https://runnable.com/docker/rails/run-multiple-processes-in-a-container

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

Итак, в документации докера (выше) написано, подготовьте файл оболочки, который запускает два процесса, и запустите его внутри файла докера.

Однако !!!Я подключился к своему докеру из командной строки хоста (docker exec -it container_name bash).Я видел (top) запущенные процессы.Процесс Java запущен, а процесс Python не запущен.

My Dockerfile

# Prepare slim python, and install open-jdk-11
ENTRYPOINT ./startJavaAndPython.sh

startJavaAndPython.sh

java -XX:+UseContainerSupport $JAVA_OPTIONS -jar java-app.jar;
python app.py;

Я также прочитал https://askubuntu.com/questions/287350/start-a-new-process-without-blocking-the-terminal и https://unix.stackexchange.com/questions/152310/how-to-correctly-start-an-application-from-a-shell/305769,, которые не работали в моем случае.Потому что, как вы видите, в моей оболочке, если команда не заканчивается на ;, при запуске docker будут возникать ошибки.

Updates

1) Итак, амперсанды не помогают.

startJavaAndPython.sh

java -XX:+UseContainerSupport $JAVA_OPTIONS -jar java-app.jar &;
python app.py &;

Я тоже пробовал, но не получилось. startJavaAndPython.sh

java -XX:+UseContainerSupport $JAVA_OPTIONS -jar java-app.jar &
python app.py &

Я получил

$ docker run my-composed-task
: not foundonJava.sh: 1: ./startJavaAndPython.sh:
: not startJavaAndPython.sh: 2: ./startJavaAndPython.sh:

2) Я могу запустить свой докер-контейнер, подключиться к нему по ssh и вручную запустить приложение python.Это будет работать!!!Но как сделать это автоматически, без рук!

3) Я использую Windows 10 в качестве хост-машины.

Я использовал эти ссылки, которые могут быть полезны для других,https://askubuntu.com/questions/287350/start-a-new-process-without-blocking-the-terminal

https://unix.stackexchange.com/questions/152310/how-to-correctly-start-an-application-from-a-shell/305769

Как мне попасть в оболочку контейнера Docker?

1 Ответ

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

После сильной боли.Как я уже сказал, я использую Windows .Он добавляет \r в конце каждой строки.Тогда мой сценарий оболочки имеет эти окончания и не запускается.Точнее, он запускает первую команду - запуск java, но никогда не выполняет вторую команду, запускающую python.

startJavaAndPython.sh

java -XX:+UseContainerSupport $JAVA_OPTIONS -jar sidecarForPythonService-app.jar & python app.py;

Если у вас есть другие детали, не стесняйтесь ответить.

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