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

docker-compose + django + redis - Errore 111 durante la connessione a 127.0.0.1:6379. connessione rifiutata

127.0.0.1 in Docker significa quasi sempre "questo contenitore". Se stai eseguendo la tua applicazione in Docker Compose, è

... configura un'unica rete per la tua app. Ogni contenitore per un servizio si unisce alla rete predefinita ed è entrambi raggiungibile da altri contenitori su quella rete e rilevabile da loro in un nome host identico al nome del contenitore.

Cioè, nel contesto di questo docker-compose.yml file, ci sono nomi host redis e web quel punto ai due contenitori.

Hai già fatto una delle cose importanti di configurazione. Quando il tuo codice dice

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

è possibile impostare una variabile di ambiente che sostituisca il valore predefinito integrato. Quindi qui devi solo aggiungere un'impostazione di variabile d'ambiente al tuo docker-compose.yml file:

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