无法在 docker 图像中导入 cx_Oracle
Can't import cx_Oracle in docker image
我正在用 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'
有人可以告诉我如何解决这个问题吗?
你可以在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' 模块。
我正在用 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'
有人可以告诉我如何解决这个问题吗?
你可以在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' 模块。