无法在docker镜像中导入cx_Oracle

问题描述 投票:0回答:1

我正在用docker构建一个python文件。在这个python文件中,我import cx_Oracle用oracle做点什么。我可以通过ternimal成功运行python文件:

[root@master files]# python3 myfile.py

然后我基于这个文件构建一个docker镜像。这是Dockerfile的内容:

FROM python:3.6
ENV PYTHONPATH /root/files
WORKDIR ./
COPY myfile.py ./
CMD [ "python3", "myfile.py" ]

然后建立图像:[root@master files]# docker build -f Dockerfile -t test:1.0 . 建筑成功。但是,当我试图通过docker run --name test test:1.0运行图像时,它给了我一个错误:

Traceback (most recent call last):
  File "TimedTransfer.py", line 4, in <module>
    from Transfer import TransferTPI
  File "/Transfer.py", line 7, in <module>
    import cx_Oracle
ModuleNotFoundError: No module named 'cx_Oracle'

有人能告诉我如何解决这个问题吗?

python oracle docker cx-oracle
1个回答
3
投票

您可以在Dockerfile中添加一行,然后Dockerfile将是这样的:

FROM python:3.6
ENV PYTHONPATH /root/files

# install the 'cx_Oracle' module
RUN apt-get -y update && python3 -m pip install cx_Oracle --upgrade

WORKDIR ./
COPY myfile.py ./
CMD [ "python3", "myfile.py" ]

然后图像将包含'cx_Oracle'模块。

© www.soinside.com 2019 - 2024. All rights reserved.