Я пытаюсь запустить neo4J в режиме причинного кластера. Все предназначено для запуска в докере с конфигом внутри docker-compose.yml
. Все экземпляры кластера работают, однако, когда я пытаюсь подключиться к neo4J через Node.js (который, конечно, также запускается тем же docker-compose.yml
), я получаю: Neo4j :: executeQuery :: Error Neo4jError: getaddrinfo ENOTFOUND neo4j
. Как я могу заставить это работать, т.е. подключиться от узла к neo4J в режиме причинного кластера внутри контейнера докера. Вот мой docker-compose.yml
:
version: '3'
networks:
lan:
services:
app:
build:
dockerfile: Dockerfile.dev
context: ./
links:
- core1
- core2
- core3
- read1
volumes:
- /app/node_modules
- ./:/app
ports:
- '3000:3000'
environment:
- REACT_APP_NEO4J_HOST=bolt://neo4j
core1:
image: neo4j:3.5.11-enterprise
networks:
- lan
ports:
- 7474:7474
- 6477:6477
- 7687:7687
volumes:
- $HOME/neo4j/neo4j-core1/conf:/conf
- $HOME/neo4j/neo4j-core1/data:/data
- $HOME/neo4j/neo4j-core1/logs:/logs
- $HOME/neo4j/neo4j-core1/plugins:/plugins
environment:
- REACT_APP_NEO4J_HOST=bolt://neo4j
- NEO4J_AUTH=neo4j/changeme
- NEO4J_dbms_mode=CORE
- NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
- NEO4J_causal__clustering_minimum__core__cluster__size__at__formation=3
- NEO4J_causal__clustering_minimum__core__cluster__size__at__runtime=3
- NEO4J_causal__clustering_initial__discovery__members=core1:5000,core2:5000,core3:5000
- NEO4J_dbms_connector_http_listen__address=:7474
- NEO4J_dbms_connector_https_listen__address=:6477
- NEO4J_dbms_connector_bolt_listen__address=:7687
core2:
image: neo4j:3.5.11-enterprise
networks:
- lan
ports:
- 7475:7475
- 6478:6478
- 7688:7688
volumes:
- $HOME/neo4j/neo4j-core2/conf:/conf
- $HOME/neo4j/neo4j-core2/data:/data
- $HOME/neo4j/neo4j-core2/logs:/logs
- $HOME/neo4j/neo4j-core1/plugins:/plugins
environment:
- REACT_APP_NEO4J_HOST=bolt://neo4j
- NEO4J_AUTH=neo4j/changeme
- NEO4J_dbms_mode=CORE
- NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
- NEO4J_causal__clustering_minimum__core__cluster__size__at__formation=3
- NEO4J_causal__clustering_minimum__core__cluster__size__at__runtime=3
- NEO4J_causal__clustering_initial__discovery__members=core1:5000,core2:5000,core3:5000
- NEO4J_dbms_connector_http_listen__address=:7475
- NEO4J_dbms_connector_https_listen__address=:6478
- NEO4J_dbms_connector_bolt_listen__address=:7688
core3:
image: neo4j:3.5.11-enterprise
networks:
- lan
ports:
- 7476:7476
- 6479:6479
- 7689:7689
volumes:
- $HOME/neo4j/neo4j-core3/conf:/conf
- $HOME/neo4j/neo4j-core3/data:/data
- $HOME/neo4j/neo4j-core3/logs:/logs
- $HOME/neo4j/neo4j-core1/plugins:/plugins
environment:
- REACT_APP_NEO4J_HOST=bolt://neo4j
- NEO4J_AUTH=neo4j/changeme
- NEO4J_dbms_mode=CORE
- NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
- NEO4J_causal__clustering_minimum__core__cluster__size__at__formation=3
- NEO4J_causal__clustering_minimum__core__cluster__size__at__runtime=3
- NEO4J_causal__clustering_initial__discovery__members=core1:5000,core2:5000,core3:5000
- NEO4J_dbms_connector_http_listen__address=:7476
- NEO4J_dbms_connector_https_listen__address=:6479
- NEO4J_dbms_connector_bolt_listen__address=:7689
read1:
image: neo4j:3.5.11-enterprise
networks:
- lan
ports:
- 7477:7477
- 6480:6480
- 7690:7690
volumes:
- $HOME/neo4j/neo4j-read1/conf:/conf
- $HOME/neo4j/neo4j-read1/data:/data
- $HOME/neo4j/neo4j-read1/logs:/logs
- $HOME/neo4j/neo4j-core1/plugins:/plugins
environment:
- REACT_APP_NEO4J_HOST=bolt://neo4j
- NEO4J_AUTH=neo4j/changeme
- NEO4J_dbms_mode=READ_REPLICA
- NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
- NEO4J_causalClustering_initialDiscoveryMembers=core1:5000,core2:5000,core3:5000
- NEO4J_dbms_connector_http_listen__address=:7477
- NEO4J_dbms_connector_https_listen__address=:6480
- NEO4J_dbms_connector_bolt_listen__address=:7690
И мой DockerFile.dev:
FROM node:alpine
WORKDIR '/app'
RUN apk update && apk add yarn python g++ make && rm -rf /var/cache/apk/*
COPY ./package.json ./
RUN npm install
COPY . .
CMD ["npm", "run", "start"]