V aplikaci flask mám funkci, která se pokouší vytvořit klienta redis
db = redis.Redis(host='localhost', port=6379, decode_responses=True)
Když váš proces baňky běží v kontejneru, localhost
odkazuje na síťové rozhraní samotného kontejneru. Nerozlišuje se podle síťového rozhraní vašeho hostitele dockeru.
Musíte tedy nahradit localhost
s IP adresou kontejneru, na kterém běží redis.
V kontextu souboru docker-compose.yml je to snadné, protože docker-compose zajistí překlad názvů služeb na správnou IP adresu kontejneru:
version: "3"
services:
my_flask_service:
image: ...
my_redis_service:
image: ...
pak v aplikaci baňky použijte:
db = redis.Redis(host='my_redis_service', port=6379, decode_responses=True)