Я создаю flask API и хочу создать docker его изображение. Однако, когда я выполняю docker -компонентный запуск (после сборки), он не может найти модуль.
Ошибка:
api_1 | Traceback (most recent call last):
api_1 | File "app.py", line 6, in <module>
api_1 | from api.classify.classify import get_prediction
api_1 | ModuleNotFoundError: No module named 'api'
Структура моей папки выглядит следующим образом:
- api
-- classify
--- classify.py
-- app.py
-- Dockerfile
-- requirements.txt
-- setup.py
setup.py выглядит следующим образом:
from setuptools import setup, find_packages
setup(
name='image_api',
keywords='',
version='0.1',
packages=find_packages()
)
А Dockerfile выглядит следующим образом:
FROM python:3
WORKDIR /user/src/app
ENV PYTHONPATH=/api
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
RUN python setup.py install
CMD ["python", "app.py"]
Как это исправить и какие рекомендации лучше установить пользовательские пакеты при создании Docker изображения?