No aplicativo do flask eu tenho uma função que tenta criar um cliente redis
db = redis.Redis(host='localhost', port=6379, decode_responses=True)
Quando seu processo de frasco é executado em um contêiner,
localhost
refere-se à interface de rede do próprio contêiner. Ele não resolve para a interface de rede do host do docker. Então você precisa substituir
localhost
com o endereço IP do contêiner executando redis. No contexto de um arquivo docker-compose.yml, isso é fácil, pois o docker-compose fará com que os nomes dos serviços sejam resolvidos para o endereço IP do contêiner correto:
version: "3"
services:
my_flask_service:
image: ...
my_redis_service:
image: ...
então, no seu aplicativo de frascos, use:
db = redis.Redis(host='my_redis_service', port=6379, decode_responses=True)