我有一个文件夹结构,看起来像这样:
+--mlservice
| __init__.py
| production
| requirements.txt
| venv
| DockerFile
production是一个目录,init.py是主脚本。
这是我的DockerFile。
FROM python:3.7
ENV FLASK_APP "mlservice/__init__.py"
RUN mkdir /app
WORKDIR /app
# Install the dependencies specified in requirements file
COPY requirements.txt /app/
RUN pip install -r requirements.txt
# Copy all directories and files from host to container
COPY . /app
COPY production /app/mlservice/production
EXPOSE 5000
# Run the application; default command to run when container starts
CMD flask run --host=0.0.0.0
我的应用程序在命令提示符下运行正常,但是当我尝试在Docker容器中运行它时,出现以下错误:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/flask/cli.py", line 240, in locate_app
__import__(module_name)
File "/app/__init__.py", line 18, in <module>
from production.dataprocessing import DataProcessing
ModuleNotFoundError: No module named 'production'
我已经尝试了所有不同的方法来将我的目录复制到容器中,但是都没有成功。我认为这并不是由于相对导入的问题,因为在命令提示符中运行时可以成功找到“production”文件夹。我认为问题出在我如何将“mlservice”目录复制到容器中。有人能看出我做错了什么吗?
__init__.py
两侧加上双下划线,虽然我猜你已经知道了这一点... 你可能已经非常接近成功了!你有没有可用的Github仓库呢? - v25