运行 pip install -r requirements.txt 在 Dockerfile 中不工作

RUN pip install -r requirements.txt not working inside a Dockerfile

我正在尝试通过将一些 python 包添加到我的基础 docker 映像来构建一个新的 docker 映像。 sudo docker build -t myimage1:cuda10.2 . 运行s 没有任何问题,但我无法导入新图像中的任何包。我正在使用 sudo docker run --gpus all -it myimage1:cuda10.2 到 运行 图像。有人可以帮助我了解我在这里缺少什么吗?

Docker 文件

FROM nvcr.io/nvidia/rapidsai/rapidsai:cuda10.2-runtime-ubuntu18.04

WORKDIR /rapids/notebooks/

COPY requirements.txt ./

RUN pip install --upgrade pip && \
    pip install --no-cache-dir -r requirements.txt

requirements.txt

ujson

这是 docker build

的跟踪
Sending build context to Docker daemon  4.096kB
Step 1/5 : FROM nvcr.io/nvidia/rapidsai/rapidsai:cuda10.2-runtime-ubuntu18.04
 ---> 98901cabda0a
Step 2/5 : WORKDIR /rapids/notebooks/
 ---> Using cache
 ---> 162a9bb732c7
Step 3/5 : COPY requirements.txt ./
 ---> 7bb48a384987
Step 4/5 : RUN pip install --upgrade pip &&     pip install --no-cache-dir -r requirements.txt
 ---> Running in 5f3ca4ed3f93
Collecting pip
  Downloading pip-20.2.4-py2.py3-none-any.whl (1.5 MB)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 20.0.2
    Uninstalling pip-20.0.2:
      Successfully uninstalled pip-20.0.2
Successfully installed pip-20.2.4
Collecting ujson
  Downloading ujson-4.0.1-cp38-cp38-manylinux1_x86_64.whl (181 kB)
Installing collected packages: ujson
Successfully installed ujson-4.0.1
Removing intermediate container 5f3ca4ed3f93
 ---> 58e94a2c4c98
Step 5/5 : COPY . .
 ---> d5897f4da4ff
Successfully built d5897f4da4ff
Successfully tagged myimage1:cuda10.2

如果我 运行 图像并执行 pip install ujson 这就是我得到的

Collecting ujson
  Downloading ujson-4.0.1-cp37-cp37m-manylinux1_x86_64.whl (179 kB)
     |████████████████████████████████| 179 kB 947 kB/s
Installing collected packages: ujson
Successfully installed ujson-4.0.1

唯一的区别是ujson包是cp37,而Dockerfile安装的是cp38?有人可以解释为什么安装的软件包适用于不同的 Python 版本吗?

在 Rapids 容器中有一个名为 rapids 的虚拟环境,其中安装了所有包并在容器的默认入口点激活。您应该将 RUN 命令更改为:

RUN source activate rapids && \
    pip install --upgrade pip && \
    pip install --no-cache-dir -r requirements.txt