फ्लास्क ऐप में मेरे पास एक फ़ंक्शन है जो रेडिस क्लाइंट बनाने की कोशिश करता है
db = redis.Redis(host='localhost', port=6379, decode_responses=True)
जब आपकी फ्लास्क प्रक्रिया एक कंटेनर में चलती है, localhost
कंटेनर के नेटवर्क इंटरफ़ेस को ही संदर्भित करता है। यह आपके डॉकटर होस्ट के नेटवर्क इंटरफ़ेस का समाधान नहीं करता है।
तो आपको localhost
को बदलने की जरूरत है रेडिस चलाने वाले कंटेनर के आईपी पते के साथ।
docker-compose.yml फ़ाइल के संदर्भ में, यह आसान है क्योंकि docker-compose सेवा नामों को सही कंटेनर IP पते पर हल कर देगा:
version: "3"
services:
my_flask_service:
image: ...
my_redis_service:
image: ...
फिर अपने फ्लास्क ऐप में, उपयोग करें:
db = redis.Redis(host='my_redis_service', port=6379, decode_responses=True)