Python 找不到满足tensorflow-inside docker要求的版本
这是我的requirements.txt文件:Python 找不到满足tensorflow-inside docker要求的版本,python,docker,tensorflow,keras,Python,Docker,Tensorflow,Keras,这是我的requirements.txt文件: absl-py==0.10.0 astunparse==1.6.3 cachetools==4.1.1 certifi==2020.6.20 chardet==3.0.4 click==7.1.2 cmake==3.18.2.post1 dlib==19.21.0 Flask==1.1.2 gast==0.3.3 google-auth==1.21.0 google-auth-oauthlib==0.4.1 google-pasta==0.2.0
absl-py==0.10.0
astunparse==1.6.3
cachetools==4.1.1
certifi==2020.6.20
chardet==3.0.4
click==7.1.2
cmake==3.18.2.post1
dlib==19.21.0
Flask==1.1.2
gast==0.3.3
google-auth==1.21.0
google-auth-oauthlib==0.4.1
google-pasta==0.2.0
grpcio==1.31.0
h5py==2.10.0
idna==2.10
importlib-metadata==1.7.0
itsdangerous==1.1.0
Jinja2==2.11.2
Keras==2.4.3
Keras-Preprocessing==1.1.2
Markdown==3.2.2
MarkupSafe==1.1.1
numpy==1.18.5
oauthlib==3.1.0
opencv-contrib-python==4.2.0.34
opt-einsum==3.3.0
protobuf==3.13.0
pyasn1==0.4.8
pyasn1-modules==0.2.8
PyYAML==5.3.1
requests==2.24.0
requests-oauthlib==1.3.0
rsa==4.6
scipy==1.4.1
six==1.15.0
tensorboard==2.3.0
tensorboard-plugin-wit==1.7.0
tensorflow==2.3.0
tensorflow-estimator==2.3.0
termcolor==1.1.0
urllib3==1.25.10
Werkzeug==1.0.1
wrapt==1.12.1
zipp==3.1.0
我的docker文件是:
FROM ubuntu:18.04
RUN apt-get update && apt-get install -y python3 python3-pip sudo
RUN apt-get install -y libsm6 libxext6 libxrender-dev
RUN apt-get -y install cmake protobuf-compiler
RUN useradd -m rishav
RUN chown -R rishav:rishav /home/rishav/
COPY --chown=rishav . /home/rishav/app
USER rishav
RUN cd /home/rishav/app/
WORKDIR /home/rishav/app
RUN pip3 install -r requirements.txt
EXPOSE 8080
ENTRYPOINT python3 server.py
但当我尝试构建docker时,它会给我一个错误:
收集tensorflow==2.3.0(来自-r requirements.txt(第39行))
找不到满足需求tensorflow==2.3.0(来自-r requirements.txt(第39行))的版本这些版本包括:0.12.1 1,1.0.0.0,1.0.1.1.0 RC1,1.1.1.0 RC1,1.1.1.0 RC2,1.1.1.0,1.1.1.1,1.12.1.1.1.0,1.12.12.1.1.1.1.1.1.0,1.1.1.1.1.0 RC2.0 RC2.0,1.2.0 RC0,1.1.2.0 RC1.0,1.2.2.0 RC1.0 RC1.0,1.0 RC1.0,1.1.0 RC1.1.1.1.0 RC1.0 RC1.0,1.1.0 RC1.1.0,1.1.1.1.1.0 RC1.1.1.0 RC1.0 RC1.0,1.1.0 RC1.1.1.0,1.6.0,1.7.0rc0,1.7.0rc1,1.7.0,1.7.1,1.8.0rc0,1.8.0,1.9.0rc0,1.9.0rc1,1.9.0rc2,1.9.0,1.10.0rc0、1.10.0rc1、1.10.0、1.10.1、1.11.0rc0、1.11.0rc1、1.11.0、1.12.0rc0、1.12.0rc1、1.12.0rc2、1.12.0、1.12.2、1.12.3、1.13.0rc0、1.13.0rc1、1.13.0、1.13.2、1.14.0、1.14.0、1.14.0、1.0、1.0.0
找不到tensorflow==2.3.0的匹配分布(来自-r requirements.txt(第39行))
命令'/bin/sh-cpip3 install-r requirements.txt'返回一个非零代码:1
我尝试将tensorflow的版本降低到2.0.0b1,但是它不支持keras。
请提供帮助。您需要更新Dockerfile中的
pip
:
RUN pip3 install --upgrade pip
RUN pip3 install -r requirements.txt
我建议您稍微重构一下Dockerfile,并牢记以下几点:
- 使用一个官方的
图像可以更好地控制您使用的python版本。python
图像,如python:version
,包括python以及python:3.8
等构建工具。gcc
图像不包括构建工具,因此它们较小python:version-slim
- 使用
清理rm-r/var/lib/apt/lists/*
缓存,以减小最终映像大小。这将删除最终映像中不需要的缓存apt
- 不要
您的主目录,因为它已经属于chown
rishav:rishav
- 使用
中的pip install
选项减小最终映像的大小。这将防止--no cache dir
缓存下载的包pip
- 使用exec表单作为
,因为Dockerfile引用说它是首选入口点
FROM python:3.8
RUN apt-get update \
&& apt-get install -y \
cmake libsm6 libxext6 libxrender-dev protobuf-compiler \
&& rm -r /var/lib/apt/lists/*
RUN useradd -m rishav
COPY --chown=rishav:rishav . /home/rishav/app
USER rishav
WORKDIR /home/rishav/app
RUN pip install --no-cache-dir -r requirements.txt
EXPOSE 8080
ENTRYPOINT ["python3", "server.py"]