首页 > 解决方案 > 使用 docker compose 运行 redis

问题描述

version: '3'
services:

  postgres:
    image: postgres
    environment:
      - POSTGRES_USER=${DB_USERNAME}
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - POSTGRES_DB=${DB_DATABASE}
    ports:
      - "5674:5432"
    volumes:
      - ./data/db_data:/var/lib/postgresql/data
  redis_cache:
    image: bitnami/redis
    ports:
      - "6379:6379"
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
  app:
    image: asobooks-api
    ports:
      - 3000:3000
    environment:
      PORT: 3000
      NODE_ENV: prod
      DB_CONNECTION: postgres
      DB_HOST: postgres
      DB_USERNAME: ${DB_USERNAME}
      DB_PASSWORD: ${DB_PASSWORD}
      DB_DATABASE: ${DB_DATABASE}
      DB_PORT: 5432
      REDIS_PORT: 6379
    depends_on:
      - postgres
      - redis_cache
    command:
      [
        'node',
        'dist/src/main.js'
      ]

我已经尝试了大约 2 天,不幸的是,应用程序容器无法连接到 Redis。 Unhandled error event: Error: connect ECONNREFUSED 127.0.0.1:6379

这是连接。

BullModule.registerQueue({
      name: Queues.EMAIL,
      redis: {
        port: 6379,
        host: 'redis_cache',
      },
    })

请帮我解决这个问题,它可以在不使用 docker 的情况下工作。但是当我在容器中运行时失败。谢谢。

标签: node.jsdockerredisdocker-composenestjs

解决方案


推荐阅读