如何将python解释器和python相关组件进行镜像

当我们进行java开发的时候,会使用到各种各样的技术,其中就有使用使用python读取文件的技术,今天不去讨论如何在java文件中读取脚本,而是要做好另一件事

当我们项目完成以后,需要对项目进行进行打包镜像,同时将python文件也和我们的项目文件一起镜像,但是在容器运行的时候,java该如何读取python文件的,在本地运行的时候,我们只需要下载python解释器就可以了,但是镜像的时候可没有下载python解释器ython文件就无法读取,所以针对这种情况,提出两个办法

1.直接在镜像的时候,下载python解释器及其相关组件

这个时候我们只需要在DockerFile里面添加相应的下载指令就可以,在镜像的时候就会自动下载这些组件

DockerFile文件 

FROM openjdk:8-jre-slim
MAINTAINER xuxueli
ENV PARAMS=""
ADD target/xxl-job-admin-*.jar /app.jar
# 更新软件源
RUN apt-get update
# 安装 Python 解释器和 pip 包管理器
RUN apt-get install -y python3 python3-pip
RUN apt-get update && \
apt-get install -y python3 python3-pip && \
pip3 install --no-cache-dir pandas pymysql chardet openpyxl
COPY ./target/classes/application.properties /apps/application.properties
COPY ./health/ /apps/python/health/
WORKDIR /apps
EXPOSE 7090
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /app.jar $PARAMS"]

其中下载python解释器及其相关组建的指令是

# 更新软件源
RUN apt-get update
# 安装 Python 解释器和 pip 包管理器
RUN apt-get install -y python3 python3-pip
RUN apt-get update && \
apt-get install -y python3 python3-pip && \
pip3 install --no-cache-dir pandas pymysql chardet openpyxl

 在此要注意,如果缺少RUN apt-get updateRUN apt-get install -y python3 python3-pip,镜像过程 可能会报错,可以换成国内镜像源

这种办法属于笨方法,可以完成镜像,下载python解释器及其组件,但是速度非常慢

2.将python解释器及相关组件做成镜像,然后应用到我们的项目文件中

首先我们编辑好dockerFile

# 更新软件源
RUN apt-get update

# 安装 Python 解释器和 pip 包管理器
RUN apt-get install -y python3 python3-pip

# 安装 Python 解释器和 pip 包管理器
RUN apt-get update && \
    apt-get install -y python3 python3-pip && \
    pip3 install --no-cache-dir pandas pymysql chardet openpyxl requests urllib3 && \
    apt-get clean

DockerFile里面的指令就是我们所需要的  Python 解释器和 pip 包管理器及其相关组件

构建python文件的镜像,这样我们在打包的时候,直接下载构建好的python镜像,不需要从镜像源拉取,相当于直接从自己的本地获取python镜像文件,时间可以缩短到秒级别

下面讲一下进行镜像的过程,在本机虚拟机操作

①本地新建文件夹

②导入DockerFile

文件夹中只需要Dockerfile,因为这个镜像的文件是从镜像源下载而来的,不需要本地文件

dockerfile包含了安装Python解释器和pip包管理器的步骤,并且安装了一些Python依赖库

③对python进行镜像

docker build -f Dockerfile -t baseos .

 ④打tag

 docker tag baseospy:latest www.cncloud.cn/yx/baseos:v1
---------------------------------------------------------------------------------------------------------
docker tag {镜像名称}:{版本名称} www.cncloud.cn/yx/baseos:{版本名称}

baseospy:latest` 是你本地的 Docker 镜像的名称和标签(tag)

`www.cncloud.cn/yx/baseos:v1` 是要为镜像打的新标签。

推送到云

docker push www.cncloud.cn/yx/baseos:v1

到此位置就完成了python文件及其相关组件的镜像

现在再对项目进行镜像,就会省时很多

项目的dockerFile

FROM www.cncloud.cn/yx/baseos:v1
MAINTAINER xuxueli
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

ENV PARAMS=""
ADD target/xxl-job-admin-*.jar /app.jar

COPY ./target/classes/application.properties /apps/application.properties

COPY ./waf/ /apps/python/health/
WORKDIR /apps
EXPOSE 7090
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /app.jar $PARAMS"]

现在就可以from www.cncloud.cn/yx/baseos:v1了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值