无法在docker映像中导入cx_Oracle

时间:2019-04-24 07:34:06

标签: python oracle docker cx-oracle

我正在使用docker构建python文件。在此python文件中,我import cx_Oracle使用oracle做某事。我可以通过三进制成功运行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'

有人可以告诉我如何解决此问题吗?

1 个答案:

答案 0 :(得分:3)

您可以在Dockerfile中添加一行,然后Dockerfile将如下所示:

public String[] Any()
{                            
    IEnumerable<string> lastSixMonths = Enumerable.Range(0, 6).Select(i => DateTime.Now.AddMonths(i - 6).ToString("MM/yyyy"));
    // Now we convert it into an array.
    string[] returned = lastSixMonths.ToArray();
    return returned;
}

然后该映像将包含'cx_Oracle'模块。