Skip to content

hausgold/docker-neo4j

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mDNS enabled official/neo4j

Continuous Integration Source Code Docker Image

This Docker images provides the official/neo4j image as base with the mDNS/ZeroConf stack on top. So you can enjoy your neo4j database while it is accessible by default as neo4j.local. (Port 80)

Requirements

  • Host enabled Avahi daemon
  • Host enabled mDNS NSS lookup

Getting starting

You just need to run it like that, to get a working neo4j database:

$ docker run --rm hausgold/neo4j

The port 7474 is proxied by haproxy to port 80 to make neo4j.local directly accessible. The port 7474 is untouched.

docker-compose usage example

services:
  neo4j:
    image: hausgold/neo4j
    environment:
      # Mind the .local suffix
      MDNS_HOSTNAME: neo4j.test.local
      # We allow to start an SSH server inside the container to enable the
      # programmatically access to neo4j tooling. This is disabled by default.
      SSHD_ENABLE: 'false'
      SSHD_ROOT_PASSWORD: root
      SSHD_CUSTOM_CONIFG: 'false'

Host configs

Install the nss-mdns package, enable and start the avahi-daemon.service. Then, edit the file /etc/nsswitch.conf and change the hosts line like this:

hosts: ... mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns ...

Configure a different mDNS hostname

The magic environment variable is MDNS_HOSTNAME. Just pass it like that to your docker run command:

$ docker run --rm -e MDNS_HOSTNAME=something.else.local hausgold/neo4j

This will result in something.else.local.

You can also configure multiple aliases (CNAME's) for your container by passing the MDNS_CNAMES environment variable. It will register all the comma separated domains as aliases for the container, next to the regular mDNS hostname.

$ docker run --rm \
  -e MDNS_HOSTNAME=something.else.local \
  -e MDNS_CNAMES=nothing.else.local,special.local \
  hausgold/neo4j

This will result in something.else.local, nothing.else.local and special.local.

Other top level domains

By default .local is the default mDNS top level domain. This images does not force you to use it. But if you do not use the default .local top level domain, you need to configure your host avahi to accept it.

Further reading