docker自动化部署项目,导入自己写的模块,导包错误,如何解决?(语言-python)

问题遇到的现象和发生背景

我用FastAPI写的接口,我想用docker自动化部署python接口,但是我接口python文件import了我自己写的别的模块,运行docker run的时候出现导包错误。

问题描述

img

这是我的目录结构(后面的requirements.txt没在这个目录图片里,这个只是为了让展示一下我遇到的问题)


# 这是我导入的模块
from CommonLaws.service_use import common_laws_service

# 这是我写的 Dockerfile

FROM python:3.10

COPY FYT_algorithm_project /FYT_algorithm_project

WORKDIR /FYT_algorithm_project

ENV PYTHONPATH ./FYT_algorithm_project

RUN pip install -r OnlineServer/CommonLaws/requirements.txt

CMD ["python", "OnlineServer/CommonLaws/server.py"]

运行结果及报错内容
bash-4.2# docker run 1e5c00164a72
Traceback (most recent call last):
  File "/FYT_algorithm_project/OnlineServer/CommonLaws/server.py", line 16, in <module>
    from CommonLaws.service_use import common_laws_service
ModuleNotFoundError: No module named 'CommonLaws'

这个是报错信息

我的解答思路和尝试过的方法

我觉得可能是我当前运行的目录不正确,可能没在根目录运行程序,ENV PYTHONPATH ./FYT_algorithm_project 这是我配置运行的时候在根目录运行

我想要达到的结果

这个项目就是一个python的web接口,只是将业务逻辑的代码放到另一个模块中,我只是想用docker把项目打包了,然后直接用docker run就可以直接启动这个接口