Redis
 sql >> Database >  >> NoSQL >> Redis

Errore 99 durante la connessione a localhost:6379. Impossibile assegnare l'indirizzo richiesto

Nell'app flask ho una funzione che tenta di creare un client redis

db = redis.Redis(host='localhost', port=6379, decode_responses=True)

Quando il processo di flask viene eseguito in un contenitore, localhost si riferisce all'interfaccia di rete del container stesso. Non si risolve nell'interfaccia di rete del tuo host Docker.

Quindi devi sostituire localhost con l'indirizzo IP del contenitore che esegue redis.

Nel contesto di un file docker-compose.yml, questo è facile in quanto docker-compose risolverà i nomi dei servizi nell'indirizzo IP del contenitore corretto:

version: "3"
services:
  my_flask_service:
    image: ...
  my_redis_service:
    image: ...

quindi nell'app Flask, usa:

db = redis.Redis(host='my_redis_service', port=6379, decode_responses=True)