Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js docker compose中的Node和Neo4J_Node.js_Docker_Neo4j - Fatal编程技术网

Node.js docker compose中的Node和Neo4J

Node.js docker compose中的Node和Neo4J,node.js,docker,neo4j,Node.js,Docker,Neo4j,我正在尝试以因果集群模式运行neo4J。这一切都是为了在docker中运行,在docker compose.yml中有一个配置。但是,当我试图通过Node.js连接到neo4J时(当然也由相同的docker compose.yml运行),我得到:neo4J::executeQuery::Error Neo4jError:getaddrinfo ENOTFOUND neo4J。如何使其工作,即在docker容器内以因果集群模式从节点连接到neo4J。这是我的docker compose.yml:

我正在尝试以因果集群模式运行neo4J。这一切都是为了在docker中运行,在docker compose.yml中有一个配置。但是,当我试图通过Node.js连接到neo4J时(当然也由相同的
docker compose.yml
运行),我得到:
neo4J::executeQuery::Error Neo4jError:getaddrinfo ENOTFOUND neo4J
。如何使其工作,即在docker容器内以因果集群模式从节点连接到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) 应用程序应连接到同一网络

app:
  networks:
    - lan
2) 假设已存在名为“lan”的网络,或创建一个新网络

  networks:
    lan:
      driver: bridge
3) 已弃用docker中的“链接”-

  app:
    build:
      dockerfile: Dockerfile.dev
      context: ./
    links:
      - core1
      - core2
      - core3
      - read1
代替此用途-如果需要保持加载顺序

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

编辑请阅读后续问题的评论

1)应用程序应连接到同一网络

app:
  networks:
    - lan
2) 假设已存在名为“lan”的网络,或创建一个新网络

  networks:
    lan:
      driver: bridge
3) 已弃用docker中的“链接”-

  app:
    build:
      dockerfile: Dockerfile.dev
      context: ./
    links:
      - core1
      - core2
      - core3
      - read1
代替此用途-如果需要保持加载顺序

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


编辑请阅读后续问题的评论

谢谢您的回答,但由于某些原因,错误仍然存在。我不确定在docker中连接到neo4j db的正确URI是什么(我把它保存在环境中,-REACT_APP_NEO4J_HOST=bolt://neo4j,但我猜这是错误的是的,您必须提到
hostname:neo4j
来解析DNS
neo4j
。当连接到集群时,应该使用
bolt+路由://:
。所以bolt+路由对我来说是正确的,但是当在本地计算机上启动时,这个uri到底应该是什么样子呢我应该使用t端口,因为每个实例都在单独的端口上?我应该连接到哪个端口?这是一个很好的后续问题。您应该使用主机:端口组合的核心服务器,而不是读取副本。如何识别cor/master/leader
NEO4J_dbms_mode=core
感谢您的回答,但由于某些原因,错误仍然发生。我不确定是什么是连接到docker内部neo4j db的正确URI(我把它保存在环境中,-REACT_APP_NEO4J_HOST=bolt://neo4j,但我猜这是错误的是的,您必须提到
hostname:neo4j
来解析DNS
neo4j
。当连接到集群时,应该使用
bolt+路由://:
。所以bolt+路由对我来说是正确的,但是当在本地计算机上启动时,这个uri到底应该是什么样子呢我应该使用t端口,因为每个实例都在单独的端口上?我应该连接到哪个端口?这是一个很好的后续问题。你应该使用主机:端口组合的核心服务器,而不是读取副本。如何识别cor/master/leader
NEO4J_dbms_mode=core