我写了Dockerfile
来构建泊坞窗图片:
#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指定的图像$docker build .
我找到最新版本的IMAGE ID并使用以下命令输入:
$docker run -it d10bd1b2c2bb /bin/bash
但是当我输入泊坞窗图像时,我发现环境变量PATH的内容为空。
最终命令是:
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
echo语句的输出是合适的。在构建图像的过程中,docker环境变量似乎很好,但是,当我输入docker图像时,似乎只会出现问题。
如果省略这些最终的Docker命令,当我进入刚出现的图像时,PATH
变量仍然是一个空字符串。
我想知道是否有人知道出了什么问题?
感谢您的任何建议。
答案 0 :(得分:1)
只有与以下内容类似的声明: ENV PATH / opt / conda / bin / conda:/ opt / conda / bin / python:$ PATH 应该用来设置一个环境变量。 然后可以使用以下命令检查路径变量: RUN echo $ PATH 在构建期间,但命令如 conda和python在构建过程中可能无法正常工作,但是当您输入docker镜像时,PATH变量将正确更新。