У меня есть структура папок, которая выглядит следующим образом:
+--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 в контейнер. Кто-нибудь может увидеть, что я здесь делаю не так?