Проблема заключается в отсутствии библиотек для сборки пакетов из файлов .whl
. При создании Docker образов для python, который включает тяжелые библиотеки, такие как tensorflow
, я бы посоветовал вам использовать официальные образы Debian.
См. Ниже Dockerfile, используя Debian-Buster
:
FROM python:3.7.5-buster
RUN echo \
&& apt-get update \
&& apt-get --yes install apt-file \
&& apt-file update
RUN echo \
&& apt-get --yes install build-essential
ARG USER=nobody
RUN usermod -aG sudo $USER
RUN pip3 install --upgrade pip
COPY . /app
WORKDIR /app
RUN pip3 --no-cache-dir install -r requirements.txt
USER $USER
# Using 4000 here as you used 4000 in the code. Flask has a default of 5000
EXPOSE 4000
ENTRYPOINT ["python"]
CMD ["app/app.py"]
Я использовал следующие команды для создания и запуска образа docker и получил результат: http://0.0.0.0:4000/api/v1
docker build -t tfdocker:v1 .
docker run -p 4000:4000 -t tfdocker:v1
Для справки: Это была моя структура каталогов:
├── Dockerfile
├── app
│ └── app.py
└── requirements.txt
1 directory, 3 files
Содержимое requirements.txt
было:
Flask==1.1.2
numpy==1.18.4
tensorflow==2.2.0
Надеюсь, это поможет!