项目背景
之前项目需要用java调用python脚本访问数据库,所以专门做了一个镜像
dockerfile
FROM openjdk:8
# 拷贝客户端
COPY client /tmp/client
# 拷贝imp
COPY oracle /opt/oracle/instantclient_11_2
# 更新环境变量
ENV ORACLE_HOME=/opt/oracle/instantclient_11_2
ENV PATH=$ORACLE_HOME:$PATH LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH NLS_LANG='simplified chinese_china.ZHS16GBK'
# 更新阿里云ubuntu源
RUN sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list && \
sed -i "s@http://security.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list && \
apt-get update && apt-get install -y libaio1 expect && apt-get install -y python-pip && \
# 安装python依赖
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir requests==2.22.0 && \
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir pymssql==2.1.4 && \
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir cx-Oracle==7.2.2 && \
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir pycrypto==2.6.1 && \
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir pandas==0.24.2 && \
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir --egg mysql-connector-python-rf==2.2.2 && \
# 安装Oracle客户端
unzip /tmp/client/instantclient-basic-linux.x64-11.2.0.4.0.zip -d /opt/oracle && \
unzip /tmp/client/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip -d /opt/oracle && \
unzip /tmp/client/instantclient-sdk-linux.x64-11.2.0.4.0.zip -d /opt/oracle && \
rm -rf /tmp/client && \
# 赋权限删除不需要依赖
chmod 777 -R /opt/oracle/instantclient_11_2/ && \
rm -rf /var/cache/apk/* && rm -rf /var/lib/apt/lists/* && apt-get autoremove && \
mkdir /download
FROM openjdk:8 是因为容器上也要运行jvm,引入pycrypto是因为项目用到了DES加密,引入pandas做了数据格式化
网友评论