Oracle+Python环境搭建(docker镜像制作)
·
Oracle+Python环境搭建(docker镜像制作)
Python调用cx_oracle模块时提示缺少lib***,为解决该问题特制作个docker镜像,以下是dockerfile,分享给大家,如有不足之处,欢迎各位大佬指点!
附下载链接:(Oracle_instantclient-basic-linux.x64-11.2.0.4.0)
https://download.oracle.com/otn/linux/instantclient/11204/instantclient-basic-linux.x64-11.2.0.4.0.zip
dockerfile
FROM python:3.9.23-slim-trixie
# 打标签,说明作者,便于故障排查
LABEL maintainter="Huahf."
# 设置环境变量
ENV TZ=Asia/Shanghai
ENV ORACLE_HOME=/opt/oracle_base_client/instantclient_11_2
ENV LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
ENV PATH=$ORACLE_HOME:$PATH
# 更换debian源为华为源,提升国内下载速度
RUN cp -a /etc/apt/sources.list.d/debian.sources /etc/apt/sources.list.d/debian.sources.bak &&\
sed -i "s@http://ftp.debian.org@https://mirrors.huaweicloud.com@g" /etc/apt/sources.list.d/debian.sources &&\
sed -i "s@http://security.debian.org@https://mirrors.huaweicloud.com@g" /etc/apt/sources.list.d/debian.sources &&\
sed -i 's/deb.debian.org/mirrors.huaweicloud.com/g' /etc/apt/sources.list.d/debian.sources &&\
apt-get install apt-transport-https ca-certificates &&\
apt-get clean && apt-get update &&\
apt install -y apt-utils ntpsec-ntpdate &&\
# ntpdate cn.pool.ntp.org &&\
date
# 添加Oracle_base_client包到opt文件夹(此处示范的为Oracle11.2版本)
ADD instantclient_11_2/ /opt/oracle_base_client/instantclient_11_2/
# 创建一些软连接(快捷方式)、下载必要的lib包
RUN cd $ORACLE_HOME &&\
ln -sf libclntsh.so.11.1 libclntsh.so &&\
ln -sf libocci.so.11.1 libocci.so &&\
apt-get install -y libaio* &&\
rm -rf /var/lib/aptlists/* &&\
cd /lib/x86_64-linux-gnu/ &&\
ln -sf libaio.so.1t64 libaio.so.1
# 更换pip官方源为华为pypi源
RUN pip config --user set global.index https://mirrors.huaweicloud.com/repository/pypi &&\
pip config --user set global.index-url https://mirrors.huaweicloud.com/repository/pypi/simple &&\
pip config --user set global.trusted-host mirrors.huaweicloud.com
# 设置工作目录
WORKDIR /opt/app/
CMD ["python3"]
构建命令
docker build -f dockerfile_Oracle -t oracle_base_client:11.2 . --no-cache
备注:
记得把Oracle_base_client包放在dockerfile所在的文件夹下
更多推荐

所有评论(0)