我有以下项目结构
twoFlasks/
├── app.py
├── common/
│ ├── file1.py
│ ├── file2.py
│ └── file3.py
├── Dockerfile
├── requirements.txt
├── bot1/
│ │
│ ├── routes/
│ │ └── bot1_routes.py
└── bot2/
└── routes/
└── bot2_routes.py
和以下Dockerfile:
FROM python:3.8
WORKDIR /project
COPY requirements.txt .
COPY app.py .
RUN pip3 install -r requirements.txt
COPY bot1/ .
COPY bot2/ .
COPY common/ .
EXPOSE 5000 3000
CMD ["python", "./app.py"]
镜像构建成功,但是当我运行一个容器时,我在app.py文件的日志中得到以下错误消息
Traceback (most recent call last):
File "./app.py", line 9, in <module>
from bot2.routes import bot2_routes
ModuleNotFoundError: No module named 'bot2'
它在本地工作,但不能在Docker容器中工作,我在这里有点不知所措。如果有人知道问题出在哪里,我将不胜感激!
发布于 2020-09-10 20:09:57
因此,修复我的问题的是Dockerfile中的一个更改。
COPY bot1/ ./bot1
COPY bot2/ .bot2
COPY common/ ./common
而不是仅仅将文件夹复制到。
发布于 2020-09-08 23:03:50
如果您使用的是Python <3.3,那么您需要在包根目录中有一个__init__.py
文件来帮助Python构建名称空间:Python - Module Not Found
https://stackoverflow.com/questions/63796426
复制相似问题