python在java上运行_如何使用python和Java运行Docker?

小编典典

我认为我的方法行不通,因为我没有基本的Linux版本。

所以它是这样的:

获得Linux(我使用Alpine是因为它是准系统)

通过包管理器获取Java

获取Python,PIP

可选 :查找并设置JAVA_HOME

查找到JAVA_HOME的路径。也许有更好的方法来执行此操作,但是我通过运行容器来完成此操作,然后我使用来查看容器内部 docker exec -it [COINTAINER ID] bin/bash并找到了它。

设置JAVA_HOMEdockerfile并再次构建并再次运行

这是最终的Dockerfile(它应该与问题中的python代码一起使用):

### 1. Get Linux

FROM alpine:3.7

### 2. Get Java via the package manager

RUN apk update \

&& apk upgrade \

&& apk add --no-cache bash \

&& apk add --no-cache --virtual=build-dependencies unzip \

&& apk add --no-cache curl \

&& apk add --no-cache openjdk8-jre

### 3. Get Python, PIP

RUN apk add --no-cache python3 \

&& python3 -m ensurepip \

&& pip3 install --upgrade pip setuptools \

&& rm -r /usr/lib/python*/ensurepip && \

if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi && \

if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3 /usr/bin/python; fi && \

rm -r /root/.cache

### Get Flask for the app

RUN pip install --trusted-host pypi.python.org flask

####

#### OPTIONAL : 4. SET JAVA_HOME environment variable, uncomment the line below if you need it

#ENV JAVA_HOME="/usr/lib/jvm/java-1.8-openjdk"

####

EXPOSE 81

ADD test.py /

CMD ["python", "test.py"]

我是Docker的新手,所以这可能不是最好的解决方案。我愿意提出建议。

2020-06-17

对于使用Docker安装的Python环境来调用Python文件,你可以通过以下步骤来实现Java调用: 1. 在Docker运行Python容器,并将Python文件放置在容器内。 2. 使用Docker命令行工具执行以下命令来启动Python容器: ``` docker run -it --rm --name python-container python-image ``` 其中,`python-image`是你所使用Python镜像名称。 3. 确保在Docker容器中已经安装了Java运行环境(JRE)。 4. 编Java代码,使用`ProcessBuilder`类来调用Docker容器中的Python命令。 以下是一个简单的Java代码示例: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class DockerPythonCaller { public static void main(String[] args) { try { // 构建Docker命令 ProcessBuilder pb = new ProcessBuilder("docker", "exec", "python-container", "python", "/path/to/your/python/file.py"); pb.redirectErrorStream(true); // 执行命令并获取输出 Process process = pb.start(); InputStream inputStream = process.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); // 输出结果 String line; while ((line = reader.readLine()) != null) { System.out.println(line); } // 等待命令执行完成 int exitCode = process.waitFor(); System.out.println("Exit Code: " + exitCode); } catch (IOException | InterruptedException e) { e.printStackTrace(); } } } ``` 将上述代码中的`/path/to/your/python/file.py`替换为你实际的Python文件路径。 通过以上步骤,你可以在Java代码中调用Docker容器中的Python文件。请确保Docker容器中已经正确安装了Python及相关依赖。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值