Почему Docker не находит Flask Модуль - PullRequest
0 голосов
/ 31 марта 2020

Я создал приложение flask и пытаюсь его докернизировать. Он использует библиотеки машинного обучения, у меня были некоторые проблемы с его загрузкой, поэтому мой Dockerfile немного запутался, но образ был успешно создан.

from alpine:latest

RUN apk add --no-cache python3-dev \
&& pip3 install --upgrade pip

WORKDIR /app

COPY . /app

FROM python:3.5
RUN pip3 install gensim
RUN pip3 freeze > requirements.txt
RUN pip3 --no-cache-dir install -r requirements.txt

EXPOSE 5000

ENV PATH=/venv/bin:$PATH
ENV FLASK_APP /sentiment-service/__init__.py

CMD ["python","-m","flask", "run", "--host", "0.0.0.0", "--port", "5000"]

, и когда я пытаюсь: docker запустите my_app: последний get

/usr/local/bin/python: No module named flask

Конечно, у меня есть Flask == 1.1.1 в моем файле require.txt. Спасибо за любую помощь!

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Проблема здесь: RUN pip3 freeze > requirements.txt

Оператор > в bash перезаписывает содержимое файла. Если вы хотите добавить к своему requirements.txt, рассмотрите возможность использования оператора >>:

RUN pip3 freeze >> requirements.txt

0 голосов
/ 01 апреля 2020

Спасибо всем. Наконец я пересмотрел свое приложение, упростил требования, исключил alpine и использовал python 3.7 в своем Dockerfile. Я мог запустить приложение локально, но Docker, вероятно, не смог найти какой-либо файл по пути или получить какую-то другую ошибку из приложения, поэтому оно остановилось сразу после запуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...