From 1b41d4e59249b0c4f78ae3a39c4d41ce009f3e94 Mon Sep 17 00:00:00 2001
From: pgleeson
Date: Fri, 13 Jun 2025 15:57:56 +0100
Subject: [PATCH 01/13] Update base docker - more metadata
---
base/Dockerfile | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/base/Dockerfile b/base/Dockerfile
index 8e90170..7658f7a 100644
--- a/base/Dockerfile
+++ b/base/Dockerfile
@@ -3,9 +3,10 @@
#
FROM neurodebian:jammy
-MAINTAINER andrew.davison@unic.cnrs-gif.fr
+LABEL org.opencontainers.image.authors="andrew.davison@unic.cnrs-gif.fr,p.gleeson@gmail.com"
+LABEL org.opencontainers.image.description="A base Docker image for Python-based computational neuroscience and neurophysiology"
-ENV DEBIAN_FRONTEND noninteractive
+ENV DEBIAN_FRONTEND=noninteractive
ENV LANG=C.UTF-8
RUN apt-get update; apt-get install -y automake libtool build-essential openmpi-bin libopenmpi-dev git vim \
@@ -26,5 +27,5 @@ ENV VENV=$HOME/env/neurosci
RUN python3 -m venv $VENV && python3 -m venv --system-site-packages $VENV
RUN $VENV/bin/pip3 install --upgrade pip
-RUN $VENV/bin/pip3 install parameters quantities neo django==1.8.19 django-tagging future hgapi gitpython sumatra nixio
+RUN $VENV/bin/pip3 install parameters quantities neo django-tagging future hgapi gitpython sumatra nixio
RUN $VENV/bin/pip3 install --upgrade nose ipython
From 4f18bc27642407302b95c902209358ad6a93c342 Mon Sep 17 00:00:00 2001
From: pgleeson
Date: Fri, 13 Jun 2025 16:14:38 +0100
Subject: [PATCH 02/13] To NRN=8.2.7, BRIAN2=2.9.0
---
simulation/Dockerfile | 9 +++++----
simulationx/Dockerfile | 3 ++-
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/simulation/Dockerfile b/simulation/Dockerfile
index ddaa2a2..eaa681c 100644
--- a/simulation/Dockerfile
+++ b/simulation/Dockerfile
@@ -3,7 +3,8 @@
#
FROM neuralensemble/base
-MAINTAINER andrew.davison@unic.cnrs-gif.fr
+LABEL org.opencontainers.image.authors="andrew.davison@unic.cnrs-gif.fr,p.gleeson@gmail.com"
+LABEL org.opencontainers.image.description="A Docker image for running neuronal network simulations"
RUN ln -s /usr/bin/2to3-3.5 $VENV/bin/2to3
@@ -11,8 +12,8 @@ RUN ln -s /usr/bin/2to3-3.5 $VENV/bin/2to3
#### Set versions
ENV NEST_VER=3.5
-ENV NRN_VER=8.2.2
-ENV BRIAN2_VER=2.5.4
+ENV NRN_VER=8.2.7
+ENV BRIAN2_VER=2.9.0
ENV PYNN_VER=0.11.0
@@ -43,7 +44,7 @@ RUN mkdir $NEST; \
-DPYTHON_LIBRARY=$VENV/lib/libpython3.8.so \
-DPYTHON_INCLUDE_DIR=/usr/include/python3.8 \
$HOME/packages/$NEST; \
- make -j4; make install
+ make -j7; make install
#### Install NEURON
diff --git a/simulationx/Dockerfile b/simulationx/Dockerfile
index 5044423..96227fb 100644
--- a/simulationx/Dockerfile
+++ b/simulationx/Dockerfile
@@ -6,7 +6,8 @@
#
FROM neuralensemble/simulation
-MAINTAINER andrew.davison@unic.cnrs-gif.fr
+LABEL org.opencontainers.image.authors="andrew.davison@unic.cnrs-gif.fr,p.gleeson@gmail.com"
+LABEL org.opencontainers.image.description="A Docker image for running neuronal network simulations. This image extends the basic simulation image by adding support for SSH access and Xwindows."
USER root
From 6149eb7bcf778f929dc3bf7bd4087d78cf1631b9 Mon Sep 17 00:00:00 2001
From: pgleeson
Date: Fri, 13 Jun 2025 16:23:02 +0100
Subject: [PATCH 03/13] Add test using osb pynnshowcase repo
---
.github/workflows/docker-image.yml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml
index ae7dcb7..0aa74df 100644
--- a/.github/workflows/docker-image.yml
+++ b/.github/workflows/docker-image.yml
@@ -53,3 +53,7 @@ jobs:
- name: Print info on docker images
run: |
docker images
+
+ - name: Test a number of repos from OSB
+ run: |
+ docker run -t neuralensemble/osb /bin/bash -c "git clone https://github.com/OpenSourceBrain/PyNNShowcase.git && cd PyNNShowcase && omv find && omv all -V"
From a8506b29676c106bb3b688ba8b57b9f59594614d Mon Sep 17 00:00:00 2001
From: pgleeson
Date: Fri, 13 Jun 2025 17:10:35 +0100
Subject: [PATCH 04/13] Use latest omv & latest numpy, pandas etc
---
.gitignore | 1 +
osb/Dockerfile | 9 +++++----
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/.gitignore b/.gitignore
index 9de5576..098f05a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
/simulationx/runLocal.sh
/simulationx/regenerateAll.sh
/base/runLocal.sh
+.DS_Store
diff --git a/osb/Dockerfile b/osb/Dockerfile
index d8eef63..f394306 100644
--- a/osb/Dockerfile
+++ b/osb/Dockerfile
@@ -9,7 +9,8 @@
#FROM neuralensemble/simulationx:py2_pynn094
# For local testing
FROM neuralensemble/simulationx
-MAINTAINER p.gleeson@gmail.com
+LABEL org.opencontainers.image.authors="andrew.davison@unic.cnrs-gif.fr,p.gleeson@gmail.com"
+LABEL org.opencontainers.image.description="A Docker image for running neuronal models from Open Source Brain. This image extends the basic simulationx image by adding support for libraries required for OSB models"
USER root
@@ -23,9 +24,9 @@ RUN /bin/bash -c "source ~/env/neurosci/bin/activate"
#### Set versions
# This will set the versions of simulators installed with 'omv install ...'
-ENV OMV_VER=v0.3.3
+ENV OMV_VER=v0.3.8
-ENV PYNEUROML_VER=1.3.8
+ENV PYNEUROML_VER=1.3.18
ENV NETPYNE_VER=1.0.6
# omv install arbor with 0.9.0 throwing 'Illegal instruction'..?
ENV ARBOR_VER=0.8.1
@@ -38,6 +39,7 @@ RUN $VENV/bin/pip install pyNeuroML==$PYNEUROML_VER # will set versions of libNe
# Install OMV
+RUN $VENV/bin/pip install scipy tables pythran pandas --upgrade
RUN $VENV/bin/pip install git+https://github.com/OpenSourceBrain/osb-model-validation@${OMV_VER}
RUN sed -i -e s/'\/usr\/bin\/python'/'\/home\/docker\/env\/neurosci\/bin\/python'/g $VENV/bin/omv
@@ -109,7 +111,6 @@ USER root
RUN which python
-RUN $VENV/bin/pip install 'numpy<2.0.0' # as there are still some packages not compliant with this
# Some aliases
From a4b15d0c0d87e9ae1de124327027802f82ca4dec Mon Sep 17 00:00:00 2001
From: pgleeson
Date: Fri, 13 Jun 2025 17:12:36 +0100
Subject: [PATCH 05/13] Also numexpr
---
osb/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/osb/Dockerfile b/osb/Dockerfile
index f394306..308a5d9 100644
--- a/osb/Dockerfile
+++ b/osb/Dockerfile
@@ -39,7 +39,7 @@ RUN $VENV/bin/pip install pyNeuroML==$PYNEUROML_VER # will set versions of libNe
# Install OMV
-RUN $VENV/bin/pip install scipy tables pythran pandas --upgrade
+RUN $VENV/bin/pip install scipy tables pythran pandas numexpr --upgrade
RUN $VENV/bin/pip install git+https://github.com/OpenSourceBrain/osb-model-validation@${OMV_VER}
RUN sed -i -e s/'\/usr\/bin\/python'/'\/home\/docker\/env\/neurosci\/bin\/python'/g $VENV/bin/omv
From 8fe40716e215107a0706d94b105ae849ec6242ef Mon Sep 17 00:00:00 2001
From: pgleeson
Date: Fri, 13 Jun 2025 18:09:47 +0100
Subject: [PATCH 06/13] Test nest=3.7 & pynn=0.12.4
---
simulation/Dockerfile | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/simulation/Dockerfile b/simulation/Dockerfile
index eaa681c..f87627d 100644
--- a/simulation/Dockerfile
+++ b/simulation/Dockerfile
@@ -11,11 +11,12 @@ RUN ln -s /usr/bin/2to3-3.5 $VENV/bin/2to3
#### Set versions
-ENV NEST_VER=3.5
+ENV NEST_VER=3.7
ENV NRN_VER=8.2.7
ENV BRIAN2_VER=2.9.0
-ENV PYNN_VER=0.11.0
+ENV PYNN_VER=0.12.4
+RUN $VENV/bin/pip install scipy tables pythran pandas numexpr --upgrade
#### Install NEST
From f22e25bcc2ef437e336d9c572b78ec848c2eba32 Mon Sep 17 00:00:00 2001
From: pgleeson
Date: Fri, 13 Jun 2025 18:33:57 +0100
Subject: [PATCH 07/13] Remove system installs of many py packages
---
base/Dockerfile | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/base/Dockerfile b/base/Dockerfile
index 7658f7a..10e10b2 100644
--- a/base/Dockerfile
+++ b/base/Dockerfile
@@ -9,11 +9,11 @@ LABEL org.opencontainers.image.description="A base Docker image for Python-based
ENV DEBIAN_FRONTEND=noninteractive
ENV LANG=C.UTF-8
-RUN apt-get update; apt-get install -y automake libtool build-essential openmpi-bin libopenmpi-dev git vim \
+RUN apt-get update
+RUN apt-get install -y automake libtool build-essential openmpi-bin libopenmpi-dev git vim \
wget python3 libpython3-dev libncurses5-dev libreadline-dev libgsl0-dev cython3 \
- python3-numpy python3-scipy python3-matplotlib python3-jinja2 python3-mock \
- ipython3 python3-httplib2 python3-docutils python3-yaml \
- subversion python3-venv python3-mpi4py python3-tables python3-h5py cmake zlib1g-dev
+ ipython3 \
+ subversion python3-venv python3-mpi4py cmake zlib1g-dev
RUN useradd -ms /bin/bash docker
USER docker
From a649420dff05c5821c389c4069025fe22efc61c0 Mon Sep 17 00:00:00 2001
From: pgleeson
Date: Fri, 13 Jun 2025 18:37:06 +0100
Subject: [PATCH 08/13] update matplotlib also
---
simulation/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/simulation/Dockerfile b/simulation/Dockerfile
index f87627d..4c61f35 100644
--- a/simulation/Dockerfile
+++ b/simulation/Dockerfile
@@ -16,7 +16,7 @@ ENV NRN_VER=8.2.7
ENV BRIAN2_VER=2.9.0
ENV PYNN_VER=0.12.4
-RUN $VENV/bin/pip install scipy tables pythran pandas numexpr --upgrade
+RUN $VENV/bin/pip install scipy tables pythran pandas numexpr matplotlib --upgrade
#### Install NEST
From 5152df1fe19687a7dcfd901b7413fafd713f54fb Mon Sep 17 00:00:00 2001
From: pgleeson
Date: Sat, 14 Jun 2025 10:47:50 +0100
Subject: [PATCH 09/13] Specify cython better
---
base/Dockerfile | 2 +-
osb/generateAll.sh | 16 ++++++++++++++++
simulation/Dockerfile | 1 +
3 files changed, 18 insertions(+), 1 deletion(-)
create mode 100755 osb/generateAll.sh
diff --git a/base/Dockerfile b/base/Dockerfile
index 10e10b2..76540af 100644
--- a/base/Dockerfile
+++ b/base/Dockerfile
@@ -11,7 +11,7 @@ ENV LANG=C.UTF-8
RUN apt-get update
RUN apt-get install -y automake libtool build-essential openmpi-bin libopenmpi-dev git vim \
- wget python3 libpython3-dev libncurses5-dev libreadline-dev libgsl0-dev cython3 \
+ wget python3 libpython3-dev libncurses5-dev libreadline-dev libgsl0-dev \
ipython3 \
subversion python3-venv python3-mpi4py cmake zlib1g-dev
diff --git a/osb/generateAll.sh b/osb/generateAll.sh
new file mode 100755
index 0000000..c49c61a
--- /dev/null
+++ b/osb/generateAll.sh
@@ -0,0 +1,16 @@
+set -e
+
+cd ../base
+./generate.sh
+
+cd ../simulation
+./generate.sh
+
+cd ../simulationx
+
+./generate.sh
+
+cd ../osb
+
+./generate.sh
+
diff --git a/simulation/Dockerfile b/simulation/Dockerfile
index 4c61f35..fd16e52 100644
--- a/simulation/Dockerfile
+++ b/simulation/Dockerfile
@@ -17,6 +17,7 @@ ENV BRIAN2_VER=2.9.0
ENV PYNN_VER=0.12.4
RUN $VENV/bin/pip install scipy tables pythran pandas numexpr matplotlib --upgrade
+RUN $VENV/bin/pip install "cython<3.1.0"
#### Install NEST
From b9ce069254c697a4edb360acbb7a8200aec05d56 Mon Sep 17 00:00:00 2001
From: pgleeson
Date: Sat, 14 Jun 2025 10:47:50 +0100
Subject: [PATCH 10/13] Specify cython better
---
osb/generateAll.sh | 16 ++++++++++++++++
simulation/Dockerfile | 1 +
2 files changed, 17 insertions(+)
create mode 100755 osb/generateAll.sh
diff --git a/osb/generateAll.sh b/osb/generateAll.sh
new file mode 100755
index 0000000..c49c61a
--- /dev/null
+++ b/osb/generateAll.sh
@@ -0,0 +1,16 @@
+set -e
+
+cd ../base
+./generate.sh
+
+cd ../simulation
+./generate.sh
+
+cd ../simulationx
+
+./generate.sh
+
+cd ../osb
+
+./generate.sh
+
diff --git a/simulation/Dockerfile b/simulation/Dockerfile
index 4c61f35..fd16e52 100644
--- a/simulation/Dockerfile
+++ b/simulation/Dockerfile
@@ -17,6 +17,7 @@ ENV BRIAN2_VER=2.9.0
ENV PYNN_VER=0.12.4
RUN $VENV/bin/pip install scipy tables pythran pandas numexpr matplotlib --upgrade
+RUN $VENV/bin/pip install "cython<3.1.0"
#### Install NEST
From da70e58bf875c8d05d3e5f8ce595f71d8027f323 Mon Sep 17 00:00:00 2001
From: pgleeson
Date: Mon, 16 Jun 2025 11:28:06 +0100
Subject: [PATCH 11/13] Back to pynn 0.11.0 for now to test the rest
---
simulation/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/simulation/Dockerfile b/simulation/Dockerfile
index fd16e52..c820346 100644
--- a/simulation/Dockerfile
+++ b/simulation/Dockerfile
@@ -14,7 +14,7 @@ RUN ln -s /usr/bin/2to3-3.5 $VENV/bin/2to3
ENV NEST_VER=3.7
ENV NRN_VER=8.2.7
ENV BRIAN2_VER=2.9.0
-ENV PYNN_VER=0.12.4
+ENV PYNN_VER=0.11.0
RUN $VENV/bin/pip install scipy tables pythran pandas numexpr matplotlib --upgrade
RUN $VENV/bin/pip install "cython<3.1.0"
From f365db6d538836041ec577bfce33c55330348db3 Mon Sep 17 00:00:00 2001
From: pgleeson
Date: Tue, 17 Jun 2025 11:07:27 +0100
Subject: [PATCH 12/13] Add generate file
---
.gitignore | 1 -
base/generate.sh | 14 ++++++++++++++
2 files changed, 14 insertions(+), 1 deletion(-)
create mode 100755 base/generate.sh
diff --git a/.gitignore b/.gitignore
index 098f05a..d78bdec 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,4 @@
.idea
-/base/generate.sh
/simulationx/runLocal.sh
/simulationx/regenerateAll.sh
/base/runLocal.sh
diff --git a/base/generate.sh b/base/generate.sh
new file mode 100755
index 0000000..471140b
--- /dev/null
+++ b/base/generate.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+set -ex
+
+
+# Set the platform flag if we're on ARM
+arch=$(uname -m)
+if [[ "$arch" == "arm64" || "$arch" == "aarch64" ]]; then
+ platform_flag="--platform linux/amd64"
+else
+ platform_flag=""
+fi
+
+
+docker build $platform_flag -t neuralensemble/base .
From 47d08322a3692921272b5f6bfae0ed6ef9f01002 Mon Sep 17 00:00:00 2001
From: Padraig Gleeson
Date: Tue, 29 Jul 2025 13:46:03 +0100
Subject: [PATCH 13/13] Update to latest omv & pyneuroml
---
osb/Dockerfile | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/osb/Dockerfile b/osb/Dockerfile
index 308a5d9..5cd784d 100644
--- a/osb/Dockerfile
+++ b/osb/Dockerfile
@@ -24,9 +24,9 @@ RUN /bin/bash -c "source ~/env/neurosci/bin/activate"
#### Set versions
# This will set the versions of simulators installed with 'omv install ...'
-ENV OMV_VER=v0.3.8
+ENV OMV_VER=v0.3.10
-ENV PYNEUROML_VER=1.3.18
+ENV PYNEUROML_VER=1.3.21
ENV NETPYNE_VER=1.0.6
# omv install arbor with 0.9.0 throwing 'Illegal instruction'..?
ENV ARBOR_VER=0.8.1
@@ -46,9 +46,6 @@ RUN sed -i -e s/'\/usr\/bin\/python'/'\/home\/docker\/env\/neurosci\/bin\/python
# Install jNeuroML, PyLEMS & NeuroML2
-RUN $VENV/bin/omv install jNeuroML
-ENV JNML_HOME=$HOME/jnml/jNeuroMLJar
-
RUN $VENV/bin/omv install jLEMS
ENV LEMS_HOME=$HOME/jLEMS