Closed
Description
Problem:
When setting up clustering with multiple Docker hosts, some of the environment variables are incorrect, which prevents the container from starting properly.
Solution
Replace all some character _
by __
in environment variable names. Examples:
NEO4J_server_cluster_advertised_address
=> NEO4J_server_cluster_advertised__addressNEO4J_server_cluster_advertised_address
=> NEO4J_server_cluster_advertised__addressNEO4J_server_default_advertised_address
=> NEO4J_server_default__advertised__address
Quick fix
For ref:main
docker run --name=server1 --detach \
--network=host \
--publish=7474:7474 --publish=7687:7687 \
--publish=6000:6000 --publish=7000:7000 \
--hostname=public-address \
--env NEO4J_dbms_cluster_endpoints=server1-public-address:6000,server2-public-address:6000,server3-public-address:6000 \
--env NEO4J_server_cluster_advertised__address=public-address:6000 \
--env NEO4J_server_cluster.raft.advertised_address=public-address:7000 \
--env NEO4J_server_default__advertised__address=public-address \
--env NEO4J_ACCEPT_LICENSE_AGREEMENT=yes \
--env NEO4J_server_bolt_advertised__address=public-address:7687 \
--env NEO4J_server_http_advertised__address=public-address:7474 \
neo4j:2025.03.0-enterprise
⚠ Note: I get the following warning:
WARN Setting 'server.discovery.advertised_address' is removed. It belongs to old discovery service and has no effect anymore.
Maybe we can delete this variable from the documentation 🤔
For ref:5.x
docker run --name=server1 --detach \
--network=host \
--publish=7474:7474 --publish=7687:7687 \
--publish=5000:5000 --publish=6000:6000 --publish=7000:7000 \
--hostname=public-address \
--env NEO4J_dbms_cluster_discovery_endpoints=server1-public-address:5000,server2-public-address:5000,server3-public-address:5000 \
--env NEO4J_server_discovery_advertised__address=public-address:5000 \
--env NEO4J_server_cluster_advertised__address=public-address:6000 \
--env NEO4J_server_cluster.raft.advertised_address=public-address:7000 \
--env NEO4J_server_default__advertised__address=public-address \
--env NEO4J_ACCEPT_LICENSE_AGREEMENT=yes \
--env NEO4J_server_bolt_advertised__address=public-address:7687 \
--env NEO4J_server_http_advertised__address=public-address:7474 \
neo4j:5.26.5-enterprise
Metadata
Metadata
Assignees
Labels
No labels