Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 找不到满足tensorflow-inside docker要求的版本_Python_Docker_Tensorflow_Keras - Fatal编程技术网

Python 找不到满足tensorflow-inside docker要求的版本

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

这是我的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
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:3.8
    ,包括python以及
    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"]