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