Невозможно импортировать cx_Oracle в образ докера - PullRequest
0 голосов
/ 24 апреля 2019

Я создаю файл Python с помощью Docker. В этом файле Python я import cx_Oracle что-то делать с оракулом. Я могу успешно запустить файл python через ternimal:

[root@master files]# python3 myfile.py

Затем я создаю образ докера на основе этого файла. Вот содержание 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 Ответ

3 голосов
/ 24 апреля 2019

Вы можете добавить строку в 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'.

...