Di aplikasi flask saya memiliki fungsi yang mencoba membuat klien redis
db = redis.Redis(host='localhost', port=6379, decode_responses=True)
Saat proses labu Anda berjalan dalam wadah, localhost
mengacu pada antarmuka jaringan wadah itu sendiri. Itu tidak menyelesaikan ke antarmuka jaringan host buruh pelabuhan Anda.
Jadi Anda perlu mengganti localhost
dengan alamat IP wadah yang menjalankan redis.
Dalam konteks file docker-compose.yml, ini mudah karena docker-compose akan membuat nama layanan diselesaikan ke alamat IP penampung yang benar:
version: "3"
services:
my_flask_service:
image: ...
my_redis_service:
image: ...
lalu di aplikasi labu Anda, gunakan:
db = redis.Redis(host='my_redis_service', port=6379, decode_responses=True)