Node.js 当尝试使用docker compose通过节点连接到redis时,ECONNREFUSED
我正在尝试切换到docker,由于某些原因,我的Node.js应用程序无法连接到docker上运行的redis 这是我的docker compose: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
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
,这需要在您的代码中进行修复(它认为自己正在连接到本地机器)。