Node и Neo4J в docker-compose - PullRequest
       3

Node и Neo4J в docker-compose

0 голосов
/ 16 октября 2019

Я пытаюсь запустить 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"]

1 Ответ

2 голосов
/ 31 октября 2019

1) Приложение должно быть подключено к той же сети.

app:
  networks:
    - lan

2) Предполагается, что сеть уже существует с именем «lan» или создать новую сеть

  networks:
    lan:
      driver: bridge

3) устарело"ссылки" в Docker-

  app:
    build:
      dockerfile: Dockerfile.dev
      context: ./
    links:
      - core1
      - core2
      - core3
      - read1

вместо этого использования - depen_on , если требуется для поддержания последовательности загрузки

=======================

Редактировать Пожалуйста, прочитайте комментарии для последующих вопросов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...