Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

docker-compose + django + redis - Erro 111 ao conectar-se a 127.0.0.1:6379. Ligação recusada


127.0.0.1 no Docker quase sempre significa "este contêiner". Se você estiver executando seu aplicativo no Docker Compose, ele

... configura uma única rede para seu aplicativo. Cada contêiner de um serviço se junta à rede padrão e é alcançável por outros contêineres nessa rede e detectável por eles em um nome de host idêntico ao nome do contêiner.

Ou seja, dentro do contexto deste docker-compose.yml arquivo, existem nomes de host redis e web que apontam para os dois recipientes.

Você já fez uma das coisas importantes de configuração. Quando seu código diz
REDIS_HOST = os.environ.get('REDIS_HOST', '127.0.0.1')

você pode definir uma variável de ambiente que substitui o valor padrão interno. Então aqui você só precisa adicionar uma configuração de variável de ambiente ao seu docker-compose.yml Arquivo:
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