项目涉及到Oracle数据转换到postgresql,在docker中安装oracle客户端,需要编辑Dockerfile文件,将oracle客户端放入docker内部
下载Oracle 18,12或11.2“Basic”或“Basic Light”zip文件:64位 或32位,与您的Python体系结构相匹配。
将文件放到Dockerfile同级的目录下,如在其他目录则访问不到
环境依赖需要libaio1
安装包
以下为Dockerfile文件内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| FROM python:3.6-jessie ENV TNS_ADMIN=/oracle_client/instantclient_18_3 ENV NLS_LANG=SIMPLIFTED_CHINESE_CHINA_ZHS16GBK ENV LD_LIBRARY_PATH=/oracle_client/instantclient_18_3 RUN apt-get update && apt-get install zip -y RUN apt-get update && apt-get install libaio1 -y RUN echo \ && mkdir -p /opt/oracle && cd /opt/oracle \ && echo ADD client.zip /opt/oracle RUN cd /opt/oracle && unzip client.zip RUN sh -c "echo /opt/oracle/instantclient_18_3 > /etc/ld.so.conf.d/oracle-instantclient.conf" \ && ldconfig RUN mkdir -p /opt/oracle/instantclient_12_2/network/admin WORKDIR /usr/src/app COPY . /usr/src/app COPY pip.conf /root/.pip/pip.conf RUN pip install --no-cache-dir -r requirements.txt RUN touch .env RUN mkdir -p var/log RUN python manage.py collectstatic
|
注意点
- COPY命令不能拷贝上下文之外的文件
- ADD可以添加并自动解压.tar文件
- RUN apt-get update && apt-get install zip -y # 增加-y是 默认为同意 不然会出现安装失败
参考文档
- cx-oracle官方文档