gpt4 book ai didi

java - 在 Docker 中运行 Python 和 Java

转载 作者:行者123 更新时间:2023-12-02 10:18:01 25 4
gpt4 key购买 nike

我有一个安装了 python 和 java 的 docker 镜像,现在我想将这两个进程作为 docker 的子进程运行。

我已经检查了这篇文章,它解释了如何准备安装了 docker 和 python 的图像。它没有解释如何让它们都运行。 How to run Docker with python and Java?

我检查了如何在docker中运行多个进程 https://runnable.com/docker/rails/run-multiple-processes-in-a-container

我知道在一个容器中运行多个进程是一件坏事。这是一个紧迫性和局限性,所以我会坚持一段时间。

因此 docker 文档(上面)说,准备一个启动两个进程的 shell 文件并在 docker 文件内运行它。

但是!!!我从主机命令行(docker exec -it container_name bash)连接到我的 docker。我看到(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-terminalhttps://unix.stackexchange.com/questions/152310/how-to-correctly-start-an-application-from-a-shell/305769 ,这对我来说不起作用。因为正如你所看到的,在我的 shell 中,如果命令不是以 ; 结尾,那么当我启动 docker 时就会出现错误。

更新

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) 我可以启动我的 docker 容器,通过 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

How do I get into a Docker container's shell?

最佳答案

经历了很多痛苦之后。正如我所说,我使用Windows。它确实在每行末尾附加 \r 。然后我的shell脚本有这些结尾并且无法启动。更准确地说,它启动第一个命令 - 即启动 java,但它从不执行第二个命令,即启动 python。

startJavaAndPython.sh

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

如果您有其他详细信息,请随时回答。

关于java - 在 Docker 中运行 Python 和 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54537030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com