python - 基本镜像满足tensorflow版本,但docker仍然从requirements.txt下载tensorflow

标签 python docker tensorflow dockerfile

我有一个Dockerfile如下:

FROM tensorflow/tensorflow:1.13.2-gpu-py3
COPY src/ /

WORKDIR /Mask_RCNN
RUN pip install --upgrade pip setuptools wheel
RUN pip install -r requirements.txt
RUN pip install .
RUN pip install slidingwindow

ENTRYPOINT ["python3","/Mask_RCNN/inference_docker.py"]
和这样的需求文件:
numpy
scipy
Pillow
cython
matplotlib
tensorflow>=1.3.0
scikit-image
opencv-python
h5py
imgaug
IPython[all]
因此,拉出tf 1.13.2可以满足tensorflow>=1.3.0的要求,但是在创建镜像时,docker尝试下载最新的tf=2.3,如requirements.txt所示。但是,此行为破坏了我的代码,因为它只能在tf>1.3 and tf<2上运行。我应该通过删除requirements.txt来修改tensorflow>=1.3.0,还是有任何命令可以避免这种冲突?

最佳答案

如果查看Tensorflow上的DockerFile,您会看到tenstflow Docker镜像是由installing Tensorflow by pip在Ubuntu之上构建的。如果您使用更高版本的TensorFlow> = 1.3重新安装TensorFlow。它将为您下载最新版本,即tensorflow 2.3。因此,要么从需求文件中删除tensorflow,否则它将始终被最新版本覆盖。

关于python - 基本镜像满足tensorflow版本,但docker仍然从requirements.txt下载tensorflow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63529866/

相关文章:

python - Python 中简单事物的类或闭包

mysql - 本地主机连接 MySQL Docker 困惑

docker - 如何显示在 Docker 容器中运行的 Python 应用程序的输出?

python - TensorFlow 训练 - "Batch size"和 tf.unpack - 解包非 "batch sized"动态值?

python - SQLAlchemy 创建动态表和列

python - 如何将Linux命令转换为Python脚本?

python - 是否可以在 python 的列表理解中调用函数(不是内置函数)?

node.js - 在 docker 中安装 npm 依赖项并从 volume 进行测试

python - 多个gpus(1080Ti)在tensorflow中不加速训练,在cifar10_estimator代码上测试

python - 如果我有 anaconda,如何在 PyCharm 上安装 GPflow?