هل لدى أحدكم أي أفكار حول سبب عدم عمل هذا، من فضلكم؟
اتبعت بعض المشاركات التي نشرها @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 يشير إلى وجود مشكلة في الشبكة - هل أحتاج إلى تعديل أي شيء آخر داخل الحاوية؟