У меня есть образ докера с установленными 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?