هل من الممكن الاتصال بقاعدة البيانات مباشرة من تطبيق منفصل؟

هل لدى أحدكم أي أفكار حول سبب عدم عمل هذا، من فضلكم؟

اتبعت بعض المشاركات التي نشرها @pfaffman و @Nacho_Caballero في هذا الموضوع: https://meta.discourse.org/t/how-to-make-the-database-or-part-of-it-accessible-to-a-cloud-data-processor/147915، بالإضافة إلى مشاركة @mpalmer في هذا الموضوع: Accessing to the database from outside the container - #4 by mpalmer.

أولاً، قمت بتعديل ملف app.yml بإضافة التالي:

expose:
  - "127.0.0.2:5432:5432"

ثم أعيد بناء الحاوية. داخل الحاوية، قمت بتعيين كلمة مرور لمستخدم postgres، وتمكنت من الاتصال باستخدام الأمر التالي من داخل الحاوية:

psql -h localhost -d discourse -U postgres

ومع ذلك، عند الخروج من الحاوية ومحاولة الاتصال، أحصل على الرسالة التالية:

# psql -h 127.0.0.2 -p 5432 -d discourse -U postgres
psql: server closed the connection unexpectedly
	This probably means the server terminated abnormally
	before or while processing the request.

كما جربت تغيير المنفذ إلى رقم آخر، لكن النتيجة كانت نفسها. حصلت على عنوان IP 127 من أمر docker ps وفحصت إعدادات الشبكة (لدي ثلاث نسخ مستقلة من Discourse تعمل).

إذا قمت بتغيير عنوان IP (إلى عنوان أحد منتديات Discourse الأخرى)، أحصل على استجابة مختلفة (أكثر فورية) كالتالي:

# psql -h 127.0.0.3 -p 5432 -d discourse -U postgres
psql: could not connect to server: Connection refused
	Is the server running on host "127.0.0.3" and accepting
	TCP/IP connections on port 5432?

هل لدى أحدكم أي أفكار حول ما قد يكون خاطئًا؟ البحث في Google عن عبارة psql: server closed the connection unexpectedly يشير إلى وجود مشكلة في الشبكة - هل أحتاج إلى تعديل أي شيء آخر داخل الحاوية؟