我必须对使用 redis-server 的节点应用程序进行 dockerize 处理。我在那里使用了 docker-compose 和 redis 的官方图像。
但是,当我运行 docker compose up 时,在点击 API 后它给了我这样的错误
[ioredis] Unhandled error event: Error: connect ECONNREFUSED 127.0.0.1:6379
docker-redis | at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1106:14)
我使用了 ioredis 包,我将 REDIS_PORT 和 REDIS_HOST 作为 new Redis() 的参数
const Redis = require('ioredis');
const { promisify } = require('util');
const publisher = new Redis({
port: process.env.REDIS_PORT,
host: process.env.REDIS_HOST,
});
这里 REDIS_HOST='redis' 和 REDIS_PORT=6379
这是我的 docker-compose 文件
version: '3'
services:
app:
container_name: docker-redis
restart: always
build: .
ports:
- '3000:3000'
links:
- redis
# depends_on:
# - redis
redis:
container_name: redis
image: redis:latest
ports:
- '6379:6379'
command: ['redis-server', '--bind', 'redis', '--port', '6379']