sql >> Base de Datos >  >> NoSQL >> Redis

docker-compose + django + redis - Error 111 al conectarse a 127.0.0.1:6379. conexión denegada

127.0.0.1 en Docker casi siempre significa "este contenedor". Si está ejecutando su aplicación en Docker Compose,

... configura una sola red para su aplicación. Cada contenedor de un servicio se une a la red predeterminada y ambos son accesibles por otros contenedores en esa red, y detectable por ellos en un nombre de host idéntico al nombre del contenedor.

Es decir, dentro del contexto de este docker-compose.yml archivo, hay nombres de host redis y web ese punto en los dos contenedores.

Ya has hecho una de las cosas importantes de configuración. Cuando tu código dice

REDIS_HOST = os.environ.get('REDIS_HOST', '127.0.0.1')

puede establecer una variable de entorno que anule el valor predeterminado incorporado. Entonces, aquí solo necesita agregar una configuración de variable de entorno a su docker-compose.yml archivo:

version: '3'
services:
  redis:
    image: "redis:alpine"
  web:
    build: . # current directory
    environment:
      - REDIS_HOST=redis
    ports:
      - "8000:8000"
    # application source code and default command are built into the image