Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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通过节点连接到redis时,ECONNREFUSED_Node.js_Redis_Docker Compose - Fatal编程技术网

Node.js 当尝试使用docker compose通过节点连接到redis时,ECONNREFUSED

Node.js 当尝试使用docker compose通过节点连接到redis时,ECONNREFUSED,node.js,redis,docker-compose,Node.js,Redis,Docker Compose,我正在尝试切换到docker,由于某些原因,我的Node.js应用程序无法连接到docker上运行的redis 这是我的docker compose: version: "3" services: chatty-backend: container_name: chatty-backend build: ./ volumes: - ./:/usr/src/chatty-backend command: npm start working_d

我正在尝试切换到docker,由于某些原因,我的Node.js应用程序无法连接到docker上运行的redis

这是我的docker compose:

version: "3"
services:
  chatty-backend:
    container_name: chatty-backend
    build: ./
    volumes:
      - ./:/usr/src/chatty-backend
    command: npm start
    working_dir: /usr/src/chatty-backend
    ports:
      - "5000:5000"
    links:
      - redis
      - mongo
    depends_on:
      - redis
      - mongo

  mongo:
    image: mongo:bionic
    ports:
      - "27017:27017"

  redis:
    image: redis
    ports:
      - "6379:6379"
    command:
      redis-server

这就是我连接到redis的地方:

import * as Redis from 'ioredis';

const redis = new Redis({ host: 'redis', port: 6379 });

export default redis;
还尝试了
新Redis('redis://redis:6379)

我当前遇到此错误:

 Error: connect ECONNREFUSED 127.0.0.1:6379
   at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1056:14) {
     errno: 'ECONNREFUSED',
     code: 'ECONNREFUSED',
     syscall: 'connect',
     address: '127.0.0.1',
     port: 6379 
}


graphql redis订阅引起的问题

我忘记传递更新的configf。

graphql redis订阅引起的问题。

我忘了传递更新的configf。

据我所知,docker compose v3不推荐使用链接。尝试在“chatty backend”服务定义中不使用链接设置运行。另外,当你们在docker容器中启动应用程序时,你们有并没有收到你们提到的错误?或者当您在主机上启动它时?错误意味着redis客户端试图连接到redis服务器,在
127.0.0.1:6379
上侦听,而不是在
redis:6379
上侦听-可能,您在nodejs应用程序的配置中定义了错误的内容?我不认为链接已被弃用,但您应该使用网络而不是链接,因为这是计划中的弃用。但正如您所看到的,chatty backend并没有试图连接到
redis
,而是
127.0.0.1
,这需要在您的代码中进行修复(它认为它正在连接到本地机器)。据我所知,docker compose v3不推荐使用链接。尝试在“chatty backend”服务定义中不使用链接设置运行。另外,当你们在docker容器中启动应用程序时,你们有并没有收到你们提到的错误?或者当您在主机上启动它时?错误意味着redis客户端试图连接到redis服务器,在
127.0.0.1:6379
上侦听,而不是在
redis:6379
上侦听-可能,您在nodejs应用程序的配置中定义了错误的内容?我不认为链接已被弃用,但您应该使用网络而不是链接,因为这是计划中的弃用。但正如您所见,chatty backend并没有尝试连接到
redis
,而是
127.0.0.1
,这需要在您的代码中进行修复(它认为自己正在连接到本地机器)。