Skip to content

Commit

Permalink
debgged Dockerfile/nest install script
Browse files Browse the repository at this point in the history
  • Loading branch information
tclose committed Dec 5, 2017
1 parent 525d009 commit 12b872c
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 13 deletions.
25 changes: 15 additions & 10 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,12 @@ ENV DEBIAN_FRONTEND noninteractive
ENV LANG=C.UTF-8

RUN apt-get update; apt-get install -y build-essential autoconf automake libtool libreadline6-dev \
libncurses5-dev libgsl0-dev python-dev python3-dev python-numpy python-scipy python3-numpy \
python3-scipy openmpi-bin libopenmpi-dev inkscape libhdf5-serial-dev libyaml-dev python3-pip \
python-pip wget zip unzip flex bison vim nano emacs git
libncurses5-dev libgsl0-dev python-dev python3-dev openmpi-bin libopenmpi-dev inkscape \
libhdf5-serial-dev libyaml-dev python3-pip python-pip wget zip unzip flex bison vim nano emacs git

# Update python packages
RUN pip3 install --upgrade pip
RUN pip3 install --upgrade nose ipython virtualenvwrapper
RUN pip3 install --upgrade virtualenvwrapper

# Add non-root user
RUN useradd -ms /bin/bash docker
Expand All @@ -67,11 +66,15 @@ USER docker
# Set up virtualenv
ENV VIRTUALENVWRAPPER_PYTHON /usr/bin/python3
RUN /bin/bash -c "source /usr/local/bin/virtualenvwrapper.sh; mkvirtualenv pype9"
ENV VENV_PIP /home/docker/.virtualenvs/pype9/bin/pip
ENV VENV /home/docker/.virtualenvs/pype9
ENV VENV_PIP $VENV/bin/pip

# Install some useful Python packages into the virtualenv
RUN $VENV_PIP install ipython nose

# Install Neuron and NEST
RUN /bin/bash -c "source /usr/local/bin/virtualenvwrapper.sh; workon pype9; $HOME/packages/pype9/install/neuron.sh tag-1665alpha 3 $HOME/packages/neuron"
RUN /bin/bash -c "source /usr/local/bin/virtualenvwrapper.sh; workon pype9; $HOME/packages/pype9/install/nest.sh 2.14.0 3 $HOME/packages/nest"
RUN /bin/bash -c "source /usr/local/bin/virtualenvwrapper.sh; workon pype9; $HOME/packages/pype9/install/nest.sh 2.14.0"
RUN /bin/bash -c "source /usr/local/bin/virtualenvwrapper.sh; workon pype9; $HOME/packages/pype9/install/neuron.sh tag-1665alpha"

# Install 9ML catalog as local git repo for easy editing
RUN git clone https://github.com/INCF/nineml-catalog.git $HOME/packages/nineml-catalog
Expand All @@ -81,6 +84,11 @@ RUN ln -s $HOME/packages/nineml-catalog/ninemlcatalog $HOME/catalog
# Install Pype9 package
RUN $VENV_PIP install -e $HOME/packages/pype9[plot]

# Manually ensure that NMODL files have been compiled in PyNN installation
WORKDIR $VENV/lib/python3.5/site-packages/pyNN/neuron/nmodl
RUN $VENV/bin/nrnivmodl
WORKDIR $HOME

# Set up bashrc vimrc and add welcome message
RUN sed 's/#force_color_prompt/force_color_prompt/' $HOME/.bashrc > $HOME/tmp; mv $HOME/tmp $HOME/.bashrc;
RUN echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3"
Expand All @@ -92,6 +100,3 @@ RUN echo "set background=dark" >> $HOME/.vimrc
RUN echo "syntax on" >> $HOME/.vimrc
RUN echo "set number" >> $HOME/.vimrc
RUN echo "set autoindent" >> $HOME/.vimrc

# Set work dir
WORKDIR $HOME
11 changes: 8 additions & 3 deletions install/nest.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ fi
echo "Using Python $PYTHON_VERSION"

PYTHON=python$PYTHON_VERSION
PIP=pip$PYTHON_VERSION

if [ -z "$3" ]; then
# Use virtualenv bin by default
Expand Down Expand Up @@ -67,12 +68,16 @@ CMAKE_VERSION=$(cmake --version | awk '{print $3}')
echo $CMAKE_VERSION
if [ -z "$CMAKE_VERSION" ] || [ $(echo $CMAKE_VERSION | awk '{print $1 2}') -lt 34 ]; then
echo "CMake version '$CMAKE_VERSION' is not sufficient (>3.4), upgrading with pip"
pip install --upgrade cmake
$PIP install --upgrade cmake
fi

# Install cython
pip install cython
$PIP install cython

# Install scipy
$PIP install numpy scipy

# Make build dir
mkdir -p $BUILD_DIR
pushd $BUILD_DIR

Expand Down Expand Up @@ -109,7 +114,7 @@ popd
ARCH_SUBDIR=$($PYTHON -c "import sysconfig; print(sysconfig.get_config_vars().get('multiarchsubdir', ''))");
SHORT_PYVER=$($PYTHON -c "import sysconfig; print(sysconfig.get_config_var('py_version_short'))");
SITE_PKG_DIR=$INSTALL_PREFIX/lib/python$SHORT_PYVER/site-packages
if [ ! -z "$ARCH_SUBDIR" && ! -d $SITE_PKG_DIR/nest ]; then
if [ ! -z "$ARCH_SUBDIR" ] && [ ! -d $SITE_PKG_DIR/nest ]; then
pushd $SITE_PKG_DIR
ln -sf $INSTALL_PREFIX/lib/$ARCH_SUBDIR/python$SHORT_PYVER/site-packages/nest
popd;
Expand Down

0 comments on commit 12b872c

Please sign in to comment.