錯誤
Traceback (most recent call last):
File "demo.py", line 13, in <module>
from test_module import math
ModuleNotFoundError: No module named 'test_module'
Dockerfile
FROM python:3.7.3
RUN pip install toml -i "https://pypi.tuna.tsinghua.edu.cn/simple/"
RUN mkdir test_module
WORKDIR test_module/
COPY . .
ENTRYPOINT ["python3", "demo.py"]
一開始我這樣寫Dockerfile,發現獲取不了自定義的module。
解決
上面的寫法python不知道自己的工作目錄,需要指明python的工作目錄
改進后的Dockerfile如下:
FROM python:3.7.3
RUN pip install toml -i "https://pypi.tuna.tsinghua.edu.cn/simple/"
RUN mkdir app/test_module
WORKDIR app/test_module/
########################
ENV PATH=$PATH:/app
ENV PYTHONPATH /app
#######################
COPY . .
ENTRYPOINT ["python3", "demo.py"]
注:如果PYTHONPATH設置為/app/test_module,導入模塊是在/app/test_module/test_module找對應的文件