我有安装Python和Java的一个码头工人的形象,现在我想运行这两个进程作为泊坞窗的子进程。
我已经检查了这个职位,说明如何安装码头工人和Python 编写的图像。 它没有解释如何得到他们两人的运行。 如何使用Python和Java运行泊坞窗?
我查了一下如何在泊坞窗中运行多个进程https://runnable.com/docker/rails/run-multiple-processes-in-a-container
我知道这是一件坏事,在一个容器中运行多个进程。 这是一个紧迫性和局限性,所以我会坚持下去一段时间。
因此泊坞窗的文档(上图)说,准备这将启动两个进程一个shell文件并运行它搬运工文件中。
然而!!! 我连接到我的码头工人,从主机的命令行( docker exec -it container_name bash
)。 我看到( top
)正在运行的进程。 有Java进程正在运行和Python程序没有运行。
我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-的应用程序从-一个壳/ 305769 ,其并没有我的情况下工作。 因为你看,我的壳,如果命令不是结束;
,会出现错误,当我开始泊坞窗。
更新
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
如何进入一个多克容器的壳呢?