运行 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
我正在尝试通过将一些 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