jdhao
jdhao

Reputation: 28467

Docker container: pip is not found even though I have set the PATH during building

I am new to docker container and I want to build an image with basic environment. Here is part of my Dockerfile:

FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04

ARG CTAGS_DIR=~/tools/ctags
ARG RIPGREP_DIR=~/tools/ripgrep
ARG ANACONDA_DIR=~/tools/anaconda
ARG NVIM_DIR=~/tools/nvim
ARG NVIM_CONFIG_DIR=~/.config/nvim

# Install common dev tools
RUN apt-get update --allow-unauthenticated \
    && apt-get install --allow-unauthenticated -y git curl autoconf pkg-config zsh

# Install anaconda
COPY ./packages/Anaconda3-2019.07-Linux-x86_64.sh /tmp/anaconda.sh
RUN chmod u+x /tmp/anaconda.sh \
    && bash /tmp/anaconda.sh -b -p ${ANACONDA_DIR} \
    && rm /tmp/anaconda.sh
ENV PATH=${ANACONDA_DIR}/bin:$PATH
# RUN echo $PATH && ls -l /root/tools/anaconda/bin|grep pip
RUN echo $PATH && ls -l ~/tools/anaconda/bin|grep pip

# Python packages
RUN pip install pynvim jedi pylint

The build process fails at the pip install step complaining that

/bin/sh: 1: pip: not found
The command '/bin/sh -c pip install pynvim jedi pylint' returned a non-zero code: 127

But the output of command

RUN echo $PATH && ls -l ~/tools/anaconda/bin|grep pip

is the following

~/tools/anaconda/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
-rwxrwxr-x 1 root root      231 Sep 28 08:19 pip

which suggests that PATH is set and pip is foundable. I am not sure what is the problem here. The only explanation is that PATH is set but is not correctly set. I do not know why.

Can someone experience explain what happened? What is wrong with my Dockerfile?

Upvotes: 3

Views: 5168

Answers (1)

Adiii
Adiii

Reputation: 60074

I don't see pip in the base image you used in your Dockerfile, you can check the offical Dockerfile, nor in the base image of nvidia/cuda, you can check the base image too 10.0-cudnn7-devel-ubuntu18.04

Installed pip and then try

FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04
RUN apt update && apt install python3-pip -y
RUN pip3 --version

Upvotes: 2

Related Questions