简体   繁体   English

如何使用 Docker 容器在 Java 程序中运行 python 脚本?

[英]How to run a python script in Java program using Docker container?

i am new to docker and trying to dockerize a java app, which in turn calls a python script我是 docker 的新手,并试图对接 java 应用程序,该应用程序又调用 python 脚本

Dockerfile: Dockerfile:

FROM openjdk:8-jdk-alpine
ARG JAR_FILE=target/*.jar
ARG SCRIPT_FILE=src/main/resources/script/test.py

COPY ${JAR_FILE} app.jar
COPY ${SCRIPT_FILE} test.py
ENTRYPOINT ["java","-jar","/app.jar"]

Now my App has a line of code which executes a python script, something like this: Code snippet:现在我的应用程序有一行代码执行 python 脚本,如下所示: 代码片段:

        String interpretor = "python";
        String scriptFile = "test.py";
        String arguments = "ping";
        String[] cmd = {interpretor,scriptFile,arguments};
        
        try {
            Process p = Runtime.getRuntime().exec(cmd);
            ...
        

Exception:例外:

java.io.IOException: Cannot run program "python": error=2, No such file or directory            

Any help appreciated.任何帮助表示赞赏。 Thanks谢谢

Python runtime does not exist in the base image openjdk:8-jdk-alpine , you need to install it first before calling python script. Python 运行时在基础镜像openjdk:8-jdk-alpine中不存在,您需要在调用 python 脚本之前先安装它。

You can try below你可以试试下面

FROM openjdk:8-jdk-alpine
RUN apk add --no-cache python
ARG JAR_FILE=target/*.jar
ARG SCRIPT_FILE=src/main/resources/script/test.py
COPY ${JAR_FILE} app.jar
COPY ${SCRIPT_FILE} test.py
ENTRYPOINT ["java","-jar","/app.jar"]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM