In Getting Started With the Neo4j Graph Database – Linking Neo4j and Jupyter SciPy Docker Containers Using Docker Compose I posted a recipe demonstrating how to link a Jupyter notebook container with a neo4j container to provide a quick way to get up an running with neo4j from a Python environment.
It struck me that it should be just as easy to launch an R environment, so here’s a docker-compose.yml file that will do just that:
neo4j: image: kbastani/docker-neo4j:latest ports: - "7474:7474" - "1337:1337" volumes: - /opt/data rstudio: image: rocker/rstudio ports: - "8787:8787" links: - neo4j:neo4j volumes: - ./rstudio:/home/rstudio jupyterIR: image: jupyter/r-notebook ports: - "8889:8888" links: - neo4j:neo4j volumes: - ./notebooks:/home/jovyan/work
If you’re using Kitematic (available via the Docker Toolbox), launch the docker command line interface (Docker CLI), cd into the directory containing the docker-compose.yml file, and run the docker-compose up -d command. This will download the necessary images and fire up the linked containers: one running neo4j, one running RStudio, and one running a Jupyter notebook with an R kernel.
You should then be able to find the URLs/links for RStudio and the notebooks in Kitematic:
Once again, Nicole White has some quickstart examples for using R with neo4j, this time using the Rneo4j R package. One thing I noticed with the Jupyter R kernel was that I needed to specify the CRAN mirror when installing the package: install.packages('RNeo4j', repos="http://cran.rstudio.com/")
To connect to the neo4j database, use the domain mapping specified in the Docker Compose file: graph = startGraph("http://neo4j:7474/db/data/")
Here’s an example in RStudio running from the container:
And the Jupyter notebook:
Notebooks and RStudio project files are shared into subdirectories of the current directory (from which the docker compose command was run) on host.