You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NestJS中Bull队列无法连接Docker Redis,报错ECONNREFUSED

NestJS + Docker环境下Redis连接ECONNREFUSED错误问题

启动NestJS应用时,使用ioredis连接Redis、Bull队列连接Redis均失败,报错如下:

Error: connect ECONNREFUSED 127.0.0.1:6379 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1300:16)

已尝试多种方案无效,核心矛盾:配置返回的Redis连接参数为{host: 'redis', port: 6379},但应用仍尝试连接127.0.0.1:6379。


相关配置代码

ConfigurationModule配置

@Module({
  imports: [
    ConfigModule.forRoot({
      load: [redisConfig],
    }),
    BullModule.registerQueueAsync({
      name: 'jobs',
      imports: [ConfigModule.forFeature(bullQueueConfig)],
      useFactory: async (configService: ConfigService) => ({
        redis: {
          ...configService.get('bullQueue'),
        },
      }),
      inject: [ConfigService],
    }),
  ],
  controllers: [ConfigurationController],
  providers: [ConfigurationService, ConfigurationRepository],
  exports: [ConfigurationService],
})
export class ConfigurationModule {}

Bull队列配置

export default registerAs('bullQueue', () => {
  const redisURL =
    process.env.NODE_ENV === 'local'
      ? {
          host: process.env.BULL_QUEUE_REDIS_HOST,
          port: parseInt(process.env.BULL_QUEUE_REDIS_PORT ?? '6379'),
        }
      : JSON.parse(JSON.stringify(process.env.REDIS_URL));

  const env = {
    ...redisURL,
  };

  return env;
});

Redis配置

export default registerAs('redis', () => {
  const redisURL =
    process.env.NODE_ENV === 'local'
      ? {
          host: process.env.REDIS_HOST,
          port: parseInt(process.env.REDIS_PORT ?? '6379'),
        }
      : JSON.parse(JSON.stringify(process.env.REDIS_URL));

  const env = {
    ...redisURL,
    
  };

  return env;
});

ioredis实例化代码

this.redisClient = new Redis({
        ...newRedisObj,
      });

其中newRedisObj的值为:{host: 'redis', port: 6379}

Docker Compose配置

redis:
    container_name: redis_container
    image: "bitnami/redis"
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
    restart: unless-stopped
    ports:
      - "6379:6379"
    volumes:
      - "redis_data:/bitnami/redis/data"

内容的提问来源于stack exchange,提问作者JN_newbie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 10:05:23