127.0.0.1
en Docker casi siempre significa "este contenedor". Si está ejecutando su aplicación en Docker Compose,
... configura una sola red para su aplicación. Cada contenedor de un servicio se une a la red predeterminada y ambos son accesibles por otros contenedores en esa red, y detectable por ellos en un nombre de host idéntico al nombre del contenedor.
Es decir, dentro del contexto de este docker-compose.yml
archivo, hay nombres de host redis
y web
ese punto en los dos contenedores.
Ya has hecho una de las cosas importantes de configuración. Cuando tu código dice
REDIS_HOST = os.environ.get('REDIS_HOST', '127.0.0.1')
puede establecer una variable de entorno que anule el valor predeterminado incorporado. Entonces, aquí solo necesita agregar una configuración de variable de entorno a su docker-compose.yml
archivo:
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