input新的Docker映像时返回空PATH

我写了一个Dockerfile来构buildDockerfile镜像:

 #author russell jarvis rjjarvis@asu.edu #start from the serial version of ubuntu NEURON+Python as if its a module # add mpi support #NEURON Dockerfile #Docker comments must be of this form. # This is the syntax for a directive. Don't get confused #Set the base image to pyneuron-toolbox FROM russelljarvis/pyneuron-toolbox RUN echo $PATH WORKDIR $HOME RUN sudo /opt/conda/bin/conda install -y mpi4py ipython RUN echo $PATH WORKDIR /home/docker RUN \ sudo wget https://www.open-mpi.org/software/ompi/v2.0/downloads/openmpi-2.0.0.tar.gz && \ sudo tar -xzf openmpi-2.0.0.tar.gz && \ sudo rm openmpi-2.0.0.tar.gz RUN echo $PATH WORKDIR /home/docker/openmpi-2.0.0 RUN \ sudo ./configure && \ sudo make all && \ sudo make install RUN echo $PATH #Download maven, and its java dependencies WORKDIR $HOME/git RUN sudo apt-get -y install default-jre default-jdk maven RUN echo $PATH WORKDIR /home/docker/neuron/nrn-7.4 RUN sudo ./configure --prefix=`pwd` --without-iv --with-nrnpython=/opt/conda/bin/python --with-paranrn=/usr/bin/mpiexec RUN sudo make all && \ sudo make install RUN echo $PATH WORKDIR src/nrnpython RUN sudo /opt/conda/bin/python3.4 setup.py install RUN echo $PATH RUN echo "its chowning the USER directory that seems to break path" #RUN sudo chown -R docker $HOME RUN echo $PATH WORKDIR /home/docker/git #RUN git clone https://github.com/NeuroML/jNeuroML RUN git clone https://github.com/russelljjarvis/jNeuroML.git WORKDIR jNeuroML RUN sudo /opt/conda/bin/python getNeuroML.py ENV ADDITIONAL_PATH="/neuron/nrn-7.4/x86_64/bin" CMD export PATH=$PATH:$ADDITIONAL_PATH; /bin/echo -e "ADDITIONAL_PATH is $ADDITIONAL_PATH\nPATH is $PATH" RUN echo $PATH RUN echo $ADDITIONAL_PATH #WORKDIR /home/docker/git #RUN git clone 

我用Dockerfile构build了由Dockerfile指定的映像

 $docker build . 

我find了最新版本的IMAGE ID,并使用以下命令input:

 $docker run -it d10bd1b2c2bb /bin/bash 

但是,当我input泊坞窗图像时,我发现环境variablesPATH的内容是空的。

最后的命令是:

 ENV ADDITIONAL_PATH="/neuron/nrn-7.4/x86_64/bin" CMD export PATH=$PATH:$ADDITIONAL_PATH; /bin/echo -e "ADDITIONAL_PATH is $ADDITIONAL_PATH\nPATH is $PATH" RUN echo $PATH RUN echo $ADDITIONAL_PATH 

RUN回显语句的输出是合适的。 docker环境variables在构build映像的过程中似乎很好,但是,只有在input泊坞窗映像时才会出现问题。

如果这些最终的Docker命令被省略,那么当我进入新鲜铸造的图像时, PATHvariables仍然是一个空string。

我想知道有没有人知道哪里出了问题?

感谢您的任何build议。

只有类似于以下forms的语句应该用于设置环境variables:ENV PATH / opt / conda / bin / conda:/ opt / conda / bin / python:$ PATH。 然后可以在构build过程中使用以下命令来检查pathvariables:RUN echo $ PATH,但是在构build过程中,conda和python等命令可能无法按预期方式工作,但是在input泊坞窗镜像时,PATHvariables将被正确更新。