|
1 | | -FROM frodriguez4600/jupyter-neuron:v7.8.0 |
2 | | -ARG INSTALLATION_FOLDER=/home/jovyan/work/NetPyNE-UI |
3 | | -ARG NETPYNE_VERSION=development |
4 | | -ARG WORKSPACE_VERSION=nov2020 |
| 1 | +FROM node:13.14 as jsbuild |
| 2 | + |
| 3 | +WORKDIR /app |
| 4 | + |
| 5 | +COPY --chown=1000:1000 webapp/package.json . |
| 6 | +COPY --chown=1000:1000 webapp/yarn.lock . |
| 7 | + |
| 8 | + |
| 9 | +RUN yarn install --network-timeout 1000000000 |
| 10 | + |
| 11 | +COPY webapp/ . |
| 12 | +RUN yarn build-dev |
| 13 | + |
| 14 | + |
| 15 | +RUN mv node_modules/@metacell . |
| 16 | +RUN rm -Rf node_modules/* |
| 17 | +RUN mv @metacell node_modules |
| 18 | + |
| 19 | +### |
| 20 | +FROM jupyter/base-notebook:hub-1.5.0 |
| 21 | +ENV NB_UID=jovyan |
| 22 | +ENV FOLDER=netpyne |
5 | 23 | ARG GEPPETTO_VERSION=development |
6 | 24 | ARG BUILD_ARGS="" |
7 | 25 |
|
8 | | -USER $NB_USER |
9 | | - |
10 | | -ENV INSTALLATION_FOLDER=$INSTALLATION_FOLDER |
11 | | -ENV NETPYNE_VERSION=$NETPYNE_VERSION |
12 | | -ENV WORKSPACE_VERSION=$WORKSPACE_VERSION |
13 | | -ENV GEPPETTO_VERSION=$GEPPETTO_VERSION |
14 | | -ENV BUILD_ARGS=$BUILD_ARGS |
| 26 | +ENV FOLDER=/home/jovyan/work/NetPyNE-UI |
15 | 27 |
|
16 | | -# Install openmpi for parallel simulations |
17 | | -# Important: Have to switch to root to install a package and ensure to switch back to NB user afterwards |
18 | 28 | USER root |
19 | | -RUN apt-get update && apt-get install -y libopenmpi-dev |
20 | | -USER $NB_USER |
21 | 29 |
|
22 | | -WORKDIR /home/jovyan/work |
23 | | -COPY --chown=1000:1000 requirements.txt ${INSTALLATION_FOLDER}/requirements.txt |
| 30 | +RUN rm -rf /var/lib/apt/lists |
| 31 | +RUN apt-get update -qq &&\ |
| 32 | + apt-get install python3-tk vim nano unzip git make libtool g++ -qq pkg-config libfreetype6-dev libpng-dev libopenmpi-dev -y |
| 33 | +RUN conda install python=3.7 -y |
| 34 | + |
| 35 | + |
| 36 | +WORKDIR $FOLDER |
| 37 | +COPY --chown=1000:1000 requirements.txt requirements.txt |
| 38 | +RUN pip install -r requirements.txt --no-cache-dir --prefer-binary |
| 39 | + |
| 40 | +COPY --chown=$NB_UID:1000 . . |
| 41 | +COPY --from=jsbuild --chown=$NB_UID:1000 /app webapp |
| 42 | + |
| 43 | + |
| 44 | +RUN jupyter nbextension install --py --symlink --sys-prefix jupyter_geppetto |
| 45 | +RUN jupyter nbextension enable --py --sys-prefix jupyter_geppetto |
| 46 | +RUN jupyter nbextension enable --py --sys-prefix widgetsnbextension |
| 47 | +RUN jupyter serverextension enable --py --sys-prefix jupyter_geppetto |
| 48 | + |
| 49 | +RUN python utilities/install.py ${BUILD_ARGS} --geppetto ${GEPPETTO_VERSION} --npm-skip |
| 50 | + |
| 51 | +RUN jupyter labextension disable @jupyterlab/hub-extension |
| 52 | + |
| 53 | +RUN chown $NB_UID . |
| 54 | +RUN chown -R $NB_UID workspace |
| 55 | + |
| 56 | +# Temp fixes for eeg plots |
| 57 | +RUN wget -P `pip show LFPykit | grep "Location:" | awk '{print $2"/lfpykit"}'` https://www.parralab.org/nyhead/sa_nyhead.mat |
| 58 | + |
| 59 | +USER $NB_UID |
| 60 | + |
| 61 | + |
| 62 | +EXPOSE 8888 |
24 | 63 |
|
25 | | -WORKDIR ${INSTALLATION_FOLDER} |
26 | | -RUN pip install -r requirements.txt |
27 | 64 |
|
28 | | -COPY --chown=1000:1000 . . |
29 | | -WORKDIR ${INSTALLATION_FOLDER}/utilities |
30 | 65 |
|
31 | | -RUN npm install --global yarn |
32 | | -RUN npm install --global yalc |
33 | | -RUN python install.py ${BUILD_ARGS} --geppetto ${GEPPETTO_VERSION} |
34 | 66 |
|
35 | | -WORKDIR ${INSTALLATION_FOLDER} |
36 | 67 |
|
37 | | -RUN pip install -r requirements-test.txt |
38 | | -RUN pytest tests/backend |
39 | | -CMD /bin/bash -c "jupyter notebook --NotebookApp.default_url=/geppetto --NotebookApp.token='' --library=netpyne_ui --NotebookApp.disable_check_xsrf=True" |
|
0 commit comments