Installation with Docker¶
NRP can be executed using Docker on both Ubuntu and Windows.
Note
WSL: If you are using Windows, ensure that the Windows Subsystem for Linux (WSL) is properly installed and set up.
Note
Docker engine: To run NRP in Docker containers, the Docker engine must be installed and configured on your system. Additionally, it’s recommended to allow management of Docker as a non-root user. If not, all Docker commands must be prefixed with sudo.
Note
Alongside the Docker engine, the Docker Compose plugin is required. Refer to the installation guide for details.
Steps:
Verify Docker and Docker Compose installation:
docker version docker compose version
Set the HBP folder:
export HBP=~/NRP4
To persist this setting across sessions, add the environment variable to your
~/.bashrc:echo "export HBP=~/NRP4" >> ~/.bashrc
Ensure the $HBP folder exists:
mkdir -p "${HBP}"
Clone nrp-user-scripts repository (for the last stable version use master branch, for the development version use development branch):
cd "${HBP}" git clone -b master https://bitbucket.org/hbpneurorobotics/nrp-user-scripts.git
Note
Ensure the following port is available:
9000 (for haproxy-service)
Clean or set the STORAGE_PATH:
export STORAGE_PATH=~/nrpStorage_docker echo "export STORAGE_PATH=~/nrpStorage_docker" >> ~/.bashrc
Execute the docker-compose script:
cd "${HBP}"/nrp-user-scripts ./start_nrp_docker.sh # accepts any docker-compose parameter e.g. "-d" for daemon mode
Once the setup is complete, access the frontend at http://localhost:9000.
Note
The default Docker configuration is optimized for using NRP with Gazebo and NEST. To utilize opensim and TVB, a different backend image is necessary. Refer to the nrp-backend-service in "${HBP}"/nrp-user-scripts/docker-compose.yaml.
# image: docker-registry.ebrains.eu/nrp/nrp-core/backend-nrp-opensim-tvb-ubuntu20${NRP_IMAGE_TAG}
image: docker-registry.ebrains.eu/nrp/nrp-core/backend-nrp-gazebo-nest-ubuntu20${NRP_IMAGE_TAG}
To switch between images, uncomment the desired image and comment out the other. Another option is the backend-nrp-vanilla-ubuntu20 image, which excludes both Gazebo and opensim. The only compatible template with this is exchange_tf.