-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
115 lines (83 loc) · 3.47 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# terminal: docker run -it -d -p 5901:5901 -p 6901:6901 -e VNC_RESOLUTION=1360x768 -v $(pwd):/headless/Docker_shared --user 1984 --name ocnc_vm wchenoist/ocnc2017_software
# browser: http://localhost:6901/?password=vncpassword
# start from consol/ubuntu-xfce-vnc
FROM consol/ubuntu-xfce-vnc:latest
MAINTAINER Weiliang Chen “w.chen@oist.jp”
USER 0
RUN apt-get update && apt-get install -y build-essential ca-certificates \
bzip2 gcc g++ cmake \
wget git swig \
libglib2.0-0 libxext6 libsm6 libxrender1 \
libncurses-dev \
libopenblas-dev libmpich-dev \
libx11-dev libxtst-dev xfonts-100dpi \
scite nano xfce4-terminal
RUN apt-get -y purge python2.7-minimal && apt-get -y autoremove
USER 1984
# Install Miniconda and packages
WORKDIR $HOME
RUN mkdir srcs
WORKDIR $HOME/srcs
RUN wget --quiet https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh -O miniconda.sh -O ~/miniconda.sh && \
/bin/bash ~/miniconda.sh -b -p $HOME/apps/conda && \
rm ~/miniconda.sh
ENV PATH "$PATH:$HOME/apps/conda/bin:$HOME/apps/conda/bin/conda:$HOME/apps/conda/bin/python"
RUN $HOME/apps/conda/bin/conda install -y scipy numpy matplotlib ipython ipython-notebook jupyter pyqtgraph pyopengl nose cython
# Install STEPS
WORKDIR $HOME/srcs
RUN git clone https://github.com/CNS-OIST/STEPS.git
RUN mkdir STEPS/build
WORKDIR $HOME/srcs/STEPS/build
RUN cmake -DCMAKE_INSTALL_PREFIX:PATH=$HOME/apps/conda .. && make -j 4 && make install
WORKDIR $HOME/srcs/
RUN rm -rf STEPS
# Install NEURON
WORKDIR $HOME/srcs
RUN wget --quiet http://www.neuron.yale.edu/ftp/neuron/versions/v7.4/nrn-7.4.tar.gz && \
wget --quiet http://www.neuron.yale.edu/ftp/neuron/versions/v7.4/iv-19.tar.gz && \
tar -xzf iv-19.tar.gz && \
tar -xzf nrn-7.4.tar.gz
WORKDIR $HOME/srcs/iv-19
RUN ./configure --prefix=$HOME/apps/iv && \
make -j 4 && \
make install
WORKDIR $HOME/srcs/nrn-7.4
RUN ./configure --prefix=$HOME/apps/nrn --with-iv=$HOME/apps/iv --with-nrnpython=$HOME/apps/conda/bin/python && \
make -j 4 && \
make install
WORKDIR $HOME/srcs/nrn-7.4/src/nrnpython
RUN $HOME/apps/conda/bin/python setup.py install
ENV PATH $HOME/apps/nrn/x86_64/bin:$PATH/iv/x86_64/bin:$PATH
ENV LD_LIBRARY_PATH $PATH/nrn/x86_64/lib:$PATH/iv/x86_64/lib:$LD_LIBRARY_PATH
WORKDIR $HOME/srcs
RUN rm -rf iv-19 nrn-7.4
# Install NEST
USER 0
RUN apt-get install -y libltdl7-dev libreadline6-dev libgsl0-dev
USER 1984
WORKDIR $HOME/srcs
RUN wget --quiet https://github.com/nest/nest-simulator/releases/download/v2.12.0/nest-2.12.0.tar.gz \
&& tar -xzf nest-2.12.0.tar.gz \
&& mkdir $HOME/srcs/nest-2.12.0/build
WORKDIR $HOME/srcs/nest-2.12.0/build
RUN cmake -DCMAKE_INSTALL_PREFIX:PATH=$HOME/apps/nest -DCMAKE_C_COMPILER=mpicc -Dwith-mpi=ON .. \
&& make -j 4 && make install
ENV NEST_INSTALL_DIR=/headless/apps/nest
ENV NEST_DATA_DIR=$NEST_INSTALL_DIR/share/nest
ENV NEST_DOC_DIR=$NEST_INSTALL_DIR/share/doc/nest
ENV NEST_MODULE_PATH=$NEST_INSTALL_DIR/lib/nest
ENV NEST_PYTHON_PREFIX=$NEST_INSTALL_DIR/lib/python2.7/site-packages
ENV PYTHONPATH=$NEST_PYTHON_PREFIX:$PYTHONPATH
ENV PATH=$PATH:$NEST_INSTALL_DIR/bin
WORKDIR $HOME/srcs
RUN rm -rf nest-2.12.0
# Install Brian2
RUN conda config --add channels brian-team && conda install -y brian2 brian2tools
USER 0
ADD desktop /headless/Desktop
ADD preinstall_notebooks /headless/Documents/preinstall_notebooks
RUN chown -R 1984:1984 /headless/Documents
RUN chown -R 1984:1984 /headless/Desktop
USER 1984
RUN chmod +x $HOME/Desktop/Applications/*.desktop
WORKDIR $HOME