因工作需要,需要在java 容器里通过命令行直接执行python代码,倘若shellexec在local环境下运行只需要在本机安装python环境即可,我们这里java服务运行于docker容器中,所以需要自己构建对应的镜像来实现环境支持。
要制作一个包含 Java 8 和 Python 环境的 Docker 镜像,可以基于官方的 Java 8 镜像,并在其中安装 Python。以下是一个基本的 Dockerfile 示例,说明如何构建这个镜像:
# 使用官方的 Java 8 镜像作为基础镜像
FROM openjdk:8-jdk-alpine
# 安装 Python 环境
RUN apk add --no-cache python3 py3-pip
# 设置工作目录
WORKDIR /app
# 复制代码到容器中(可选,取决于你的需求)
# COPY . /app
# 设置容器启动时的默认命令(可选,取决于你的需求)
# CMD ["java", "-jar", "your-java-application.jar"]
# 确保安装的工具能正常工作
RUN java -version
RUN python3 --version
RUN pip3 --version
# 软链到python以便调用,我们只考虑python3版本
RUN ln -s /usr/lib/python3 /usr/bin/python
要制作一个包含 Java 8 和 Python 环境的 Docker 镜像,可以基于官方的 Java 8 镜像,并在其中安装 Python。以下是一个基本的 Dockerfile 示例,说明如何构建这个镜像:
Dockerfile
复制代码
# 使用官方的 Java 8 镜像作为基础镜像
FROM openjdk:8-jdk-alpine
# 安装 Python 环境
RUN apk add --no-cache python3 py3-pip
# 设置工作目录
WORKDIR /app
# 复制代码到容器中(可选,取决于你的需求)
# COPY . /app
# 设置容器启动时的默认命令(可选,取决于你的需求)
# CMD ["java", "-jar", "your-java-application.jar"]
# 确保安装的工具能正常工作
RUN java -version
RUN python3 --version
RUN pip3 --version
解释:
- 基础镜像:
FROM openjdk:8-jdk-alpine使用的是 Alpine Linux 版本的 OpenJDK 8 镜像,这个镜像较小,适合用于构建轻量级容器。 - 安装 Python 环境:
RUN apk add --no-cache python3 py3-pip通过 Alpine 包管理工具apk安装 Python3 和pip包管理工具。 - 工作目录:
WORKDIR /app设置容器内的工作目录。 - 验证安装:通过
RUN命令验证 Java 和 Python 是否安装成功。
构建镜像:
-
将以上 Dockerfile 保存到你的项目目录中。
-
使用以下命令构建镜像:
复制代码 docker build -t java8-python . -
启动容器:
复制代码 docker run -it java8-python /bin/sh
构建过程日志
Installing python3 (3.6.9-r3)
Executing busybox-1.29.3-r10.trigger
OK: 167 MiB in 67 packages
completed: 2024-12-02 08:48:51.75324349 +0000 UTC
duration: 5.843767857s
RUN ln -s /usr/bin/python3 /usr/bin/python
digest: sha256:c9137a93bacf2c5d0d9db4e098fd77341e713dbaae022c0e750f96097953a434
name: "[5/9] RUN ln -s /usr/bin/python3 /usr/bin/python"
started: 2024-12-02 08:48:51.777237463 +0000 UTC
completed: 2024-12-02 08:48:52.039473122 +0000 UTC
duration: 262.235659ms