欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Ubantu20中利用Docker部署SpringBoot项目,Java调用python脚本的方法。

时间:2023-04-19
Java调用命令行执行python文件

Windows:

String[] arguments = new String[] {"python3","D:/你的python文件地址.py",exp}; Process process = Runtime.getRuntime().exec(arguments)

Linux:

Process process = Runtime.getRuntime().exec(new String[] { "/bin/bash", "-c", new StringBuffer("python3 /usr/你的python文件地址.py '" + exp + "'").toString()});

1、其中exp为调用python文件时传入的参数。
2、python和python3命令由具体安装python版本决定。
3、linux中,命令为/bin/bash -c,且携带的参数需要用引号包裹。

Dockerfile

FROM adoptopenjdk/openjdk8-openj9:jdk8u282-b08_openj9-0.24.0-alpine-slimLABEL description="you label name"RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositoriesRUN set -xe && apk --no-cache add ttf-dejavu fontconfigRUN apk add -U tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone && apk add --no-cache bash bash-doc bash-completion && apk add --no-cache python3 python3-dev py-pip && apk del tzdata && rm -rf /var/cache/apk/ RUN mkdir -p /webappWORKDIR /webappADD ./webapp-0.0.1-SNAPSHOT.jar ./webapp.jarENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "webapp.jar"]

其中apk add --no-cache python3 python3-dev py-pip 为在Docker容器中安装python环境。

docker-compose.yml

version: '3'services: web: build: context: ./ dockerfile: ./Dockerfile container_name: web privileged: true restart: always command: - --server.port=8080 ports: - 8080:8080 volumes: - /usr/:/usr/

volumes指定docker容器内部和外部目录挂载关系,我们python文件放在uabntu系统目录下的位置要映射到jar包运行所在的docker容器中。
这样程序在docker中运行才能找到ubantu系统中对应文件,然后执行命令,也就是执行python脚本。

如有问题欢迎评论,创作不易,辛苦点个赞呗~

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。