制作python的docker镜像包含java环境

一、先制作python镜像

(1). 写Dockerfile文件, 直接build就完成了, 但有遇到jdk装不上的情况看第2条
FROM python:3.11
# 设置环境变量,避免交互式安装的问题
ENV DEBIAN_FRONTEND=noninteractive
# 更新包列表并安装 OpenJDK(Java)
RUN apt-get update && \
apt-get install -y \
wget \
curl \
telnet \
openjdk-17-jdk
    
RUN apt-get clean && \
rm -rf /var/lib/apt/lists/*

# 设置 JAVA_HOME 环境变量
ENV JAVA_HOME=/usr/lib/jvm/jdk-17.0.13
ENV PATH=$PATH:$JAVA_HOME/bin

COPY requirements.txt /home/app/
# 这里修改下,增加删除cache操作
RUN pip install --upgrade pip && pip3 install -r /home/app/requirements.txt -i https://mirrors.aliyun.com/pypi/simple && \
    rm -r /root/.cache


# 设置工作目录
WORKDIR /home/app/

## 检查 Python 和 Java 版本
RUN python --version && java -version
(2). jdk装不上的情况, 进行离线安装 (这里世界拉取的python镜像,默认自带的是debian12系统,如果不想用这个系统,可以from ubuntu等,然后单独安装python)
1. 写Dockerfile并build
FROM python:3.11
# 设置环境变量,避免交互式安装的问题
ENV DEBIAN_FRONTEND=noninteractive
# 更新包列表并安装基础工具及 JDK 和 Python
RUN apt-get update && \
    apt-get install -y \
    wget \
    curl \
    telnet \

RUN apt-get clean && \
    rm -rf /var/lib/apt/lists/*


COPY requirements.txt /home/app/
# 这里修改下,增加删除cache操作
RUN pip install --upgrade pip && pip3 install -r /home/app/requirements.txt -i https://mirrors.aliyun.com/pypi/simple && \
    rm -r /root/.cache


# 设置工作目录
WORKDIR /home/app/
2. 进入容器docker exec -it "容器id" bash
3. 离线下载jdk17,https://www.oracle.com/cn/java/technologies/downloads/#java17, 解压
4. 将文件夹挂载到容器里,并创建启动容器docker run -v /home/user/jdk-17.0.13:/home/app -d --name my-container "容器id" /bin/bash -c 'while true; do echo "hello"; sleep 10; done'
5.
# 1. 容器内创建文件夹
mkdir /usr/bin/jvm
# 2. jdk移动文件夹到 /usr/bin/jvm
mv /home/app/jdk-17.0.13   /usr/bin/jvm
# 3. 配置环境变量
vim /etc/profile
# 4. 在这个文件最下方新增环境变量
JAVA_HOME=/usr/lib/jvm/jdk-17.0.13 
PATH=$PATH:$JAVA_HOME/bin 
export JAVA_HOME
# 5 加载环境变量
source /etc/profile
# 测试
javac
6. 到这里就完成了,但会发现每次进容器都需要source一下,无法自动加载。我这边就直接在dockerfile中增加环境变量解决
  1. commit镜像,将刚离线安装的jdk打包到新的镜像中
docker commit "容器名"  ql/my_image:v2
  1. 写dockerfile, build, 就完成了
# 使用刚刚commit的镜像
FROM ql/my_image:v2

ENV JAVA_HOME=/usr/lib/jvm/jdk-17.0.13
ENV PATH=$PATH:$JAVA_HOME/bin

# 设置工作目录
WORKDIR /home/app
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值