当前位置: 首页 > 知识库问答 >
问题:

在Docker中运行Python和Java

楚和悌
2023-03-14

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

我查看了这篇文章,它解释了如何在安装了docker和python的情况下准备图像。它并没有解释如何让它们都运行。如何使用python和Java运行Docker?

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

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

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

然而!!!我从主机命令行(docker exec-itcontainer_namebash)连接到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-terminal 和https://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

如何进入Docker容器的shell?


共有1个答案

谢同化
2023-03-14

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

startJavaAndPython.sh

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

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

 类似资料:
  • 我试图在docker compose中运行python selenium。我有以下文件: docker撰写。yml: Dockerfile: 测验py: 我跑: 我在测试中发现了一个连接被拒绝的错误。在尝试创建webdriver时使用py。 查看日志,hub和chrome驱动程序似乎已启动并运行,chrome驱动程序已连接到hub。我可以从应用程序ping hub和chrome容器。有什么想法吗?

  • 问题内容: 我想以分离模式在docker容器中运行python cron作业。我的设置如下: 我的python脚本是test.py 我的cron文件是my-crontab 而我的Dockerfile是 这种方法潜在的问题是什么?还有其他方法,它们的优缺点是什么? 问题答案: 我在尝试使cron作业在docker容器中运行时遇到的几个问题是: Docker容器中的时间不是UTC的本地时间; dock

  • 这种方法的潜在问题是什么?是否还有其他方法,它们的利弊是什么?

  • 我需要在我的docker容器中同时使用java和python来运行一些代码。 我的目标 我必须运行一个运行Java文件的python程序。我使用的python库需要的路径。 我的问题: Python包装器以我需要的方式运行文件。

  • 问题内容: 我需要在docker容器中同时使用java和python来运行一些代码。 这是我的dockerfile:如果我不添加 FROM openjdk:slim,* 它将正常运行 * test.py应用程序位于同一目录中: 我收到此错误: 我到底在做什么错?我是Docker的新手,也许我错过了一步。 额外细节 我的目标 我必须运行一个运行Java文件的python程序。我正在使用的python

  • 这是我的docker-commentfile.yaml: 这是一个由两个cotnainer组成的组合,一个使用mysql,一个使用Java代码,使用db,现在我需要运行它,我有一个错误: 有人知道错误的原因吗?