Redis
 sql >> Base de données >  >> NoSQL >> Redis

docker-compose + django + redis - Erreur 111 lors de la connexion à 127.0.0.1:6379. Connexion rejetée

127.0.0.1 dans Docker signifie presque toujours "ce conteneur". Si vous exécutez votre application sous Docker Compose, il

... configure un réseau unique pour votre application. Chaque conteneur d'un service rejoint le réseau par défaut et est à la fois accessible par d'autres conteneurs sur ce réseau, et découvert par eux à un nom d'hôte identique au nom du conteneur.

Autrement dit, dans le contexte de ce docker-compose.yml fichier, il y a des noms d'hôtes redis et web ce point aux deux conteneurs.

Vous avez déjà fait l'une des choses importantes de configuration. Quand votre code dit

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

vous pouvez définir une variable d'environnement qui remplace la valeur par défaut intégrée. Donc ici, il vous suffit d'ajouter un paramètre de variable d'environnement à votre docker-compose.yml fichier :

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