Here is the working solution for me:
version: '3'
services:
neo4j:
container_name: neo4j
image: neo4j:3.5.16
restart: always
ports:
- 7474:7474
- 7687:7687
environment:
- NEO4J_AUTH=neo4j/superSecretPassword
- NEO4J_HOME=/var/lib/neo4j
- NEO4J_dbms_unmanaged__extension__classes=semantics.extension=/rdf
- NEO4J_dbms_security_procedures_whitelist=apoc.coll.*,apoc.load.*,semantics.*
- NEO4J_dbms_security_procedures_unrestricted=apoc.*,semantics.*
- NEO4J_apoc_export_file_enabled=true
- NEO4J_apoc_import_file_enabled=true
- NEO4J_apoc_import_file_use__neo4j__config=true
volumes:
- ~/Data/neo4j/data:/var/lib/neo4j/data
- ~/Data/neo4j/import:/var/lib/neo4j/import
- ~/Data/neo4j/conf:/var/lib/neo4j/conf
- ~/Data/neo4j/logs:/var/lib/neo4j/logs
- ~/Data/neo4j/plugins:/var/lib/neo4j/plugins
- ~/Data/neo4j/rdf:/var/lib/neo4j/rdf
It turns out, unbeknownst to me until now that neo4j desktop creates it's own instance(s) of the neo4j database. You can't (as far as I can tell) connect neo4j desktop to a running instance of neo4j in a docker container on your host machine. On a mac database instances are stored at /Users/chrisc/Library/Application Support/Neo4j Desktop/Application/neo4jDatabases
. When I deleted the databases created by Neo4j Desktop and used a standard web browser to connect to the docker instance, it worked correctly.