Installation with Docker

NPR can be run in Docker in Ubuntu and Windows.

Note

WSL. If you are usin Windows, make sure that the Windows Subsystm Linux (WSL) is installed and configured.

Note

Docker engine. In order to run the NRP in Docker containers, the Docker engine and docker-compose should be installed and configured in your system. Moreover, we recommend to allow managing Docker as a non-root user. Otherwise, you will need to preface all Docker commands with sudo.

  • set HBP folder, i.e.

    export HBP=~/NRP4
    

    you can add this variable to your ~/.bashrc so that it is always available:

    echo "export HBP=~/NRP4" >> ~/.bashrc
    
  • make sure, that the $HBP folder exists

    mkdir -p "${HBP}"
    
  • clone/checkout there nrp-user-scripts repository

    cd "${HBP}"
    git clone -b master https://bitbucket.org/hbpneurorobotics/nrp-user-scripts.git
    

Note

The following port must be available:

  • 9000 (haproxy-service)

  • clean old ~/.opt/nrpStorage (or set non-default STORAGE_PATH)

    export STORAGE_PATH=~/nrpStorage_docker
    echo "export STORAGE_PATH=~/nrpStorage_docker" >> ~/.bashrc
    
  • run the docker-compose with the script

    cd "${HBP}"/nrp-user-scripts
    ./start_nrp_docker.sh # accepts any docker compose parameter e.g. "-d" daemon mode
    
  • the frontend should be available at http://localhost:9000

Note

The default composition of the Docker installation is aimed for using NRP with Gazebo and NEST. In order to use opensim and TVB, the other backend image should be used, see service 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_CORE_TAG}
image: docker-registry.ebrains.eu/nrp/nrp-core/backend-nrp-gazebo-nest-ubuntu20${NRP_CORE_TAG}

Uncommenting the first image and commenting the second will switch the images. The other possible image is backend-nrp-vanilla-ubuntu20, which doesn’t have neither Gazebo nor opensim. The only working template there is exchange_tf.