إذا توقّف Immich بعد ترقية ZimaOS وذكر سجل الخادم getaddrinfo EAI_AGAIN immich-postgres، فإن العطل الفوري هو فشل حلّ الأسماء بين الحاويات. وهذا لا يدلّ على تلف وحدة تخزين بيانات PostgreSQL نفسها.
في النقاش الأصلي حول الإصدار 1.6.1، أدّت إعادة تسمية مسارات التخزين إلى تعطّل عدة تطبيقات، لكن MariaDB وPlex وNextcloud عادت للعمل بعد تصحيح مساراتها. أما Immich فكان مختلفًا: كان PostgreSQL سليمًا، بينما تعذّر على immich-server حلّ اسم المضيف immich-postgres.
اقرأ خطأ Immich حرفيًا
يشير EAI_AGAIN إلى فشل مؤقت في حلّ DNS. كان الخادم يحاول الوصول إلى مضيف قاعدة بيانات يُسمّى immich-postgres، في حين أفادت حاوية قاعدة البيانات نفسها بأنها جاهزة لقبول الاتصالات.
لذلك، يجب أن تكون شبكة Docker واكتشاف الخدمات أول طبقة تتحقق منها. لا تبدأ بحذف قاعدة البيانات أو إعادة إنشاء مكتبة الصور.
تحقّق من أن خدمات Immich تشترك في شبكة Compose
يوضح دليل شبكات Compose من Docker أن الخدمات الموجودة على شبكة Compose نفسها يمكنها الوصول إلى بعضها باستخدام اسم الخدمة. وقد تتغير عناوين IP للحاويات بعد إعادة إنشائها، بينما يظل اسم الخدمة ثابتًا.
تحقّق من اتصال immich-server وPostgreSQL وRedis بالشبكة المشتركة المقصودة، ومن أن اسم مضيف قاعدة البيانات في Immich لا يزال مطابقًا لاسم خدمة Compose. تجنّب استبدال اسم المضيف بعنوان IP ثابت للحاوية كحل دائم.
تعامل مع إعادة تسمية وحدة التخزين كفحص منفصل للترحيل
غيّرت الترقية أيضًا بعض أسماء التخزين باستبدال المسافات بشرطات سفلية في بيئة هذا المستخدم. كان تصحيح مسارات المضيف هذه ضروريًا للتطبيقات الأخرى، لذا راجع كل نقطة ربط خاصة بـ Immich أيضًا، ولا سيما مسارات المكتبة والتحميل وقاعدة البيانات.
يمكن أن يساعدك دليل مسار تخزين Immich ودليل ترحيل بيانات التطبيقات على فصل مشكلات مسارات التخزين عن مشكلات الشبكة.
أعد إنشاء الحزمة فقط بعد الاحتفاظ بنسخة احتياطية من الإعدادات
بعد التأكد من ملف Compose والمسارات، قد تؤدي إعادة إنشاء حزمة Immich إلى إعادة بناء شبكة Docker وإدخالات DNS المقصودة. احتفظ بوحدة تخزين قاعدة البيانات ومسارات مكتبة Immich؛ ولا تستخدم إعادة ضبط مدمّرة لاختبار الشبكة.
أدرج ZimaOS 1.7.1 لاحقًا تحسينات على تهيئة شبكة Docker وتوافق ترحيل التطبيقات في ملاحظات إصدار 1.7.1. وهذا سبب للتحديث، لكن سجل التغييرات لا يذكر تحديدًا أن حالة Immich هذه التي يظهر فيها EAI_AGAIN قد أُصلحت.
الخلاصة
عندما يكون PostgreSQL سليمًا بينما يعرض Immich الخطأ EAI_AGAIN immich-postgres، ابدأ باستكشاف أخطاء DNS الخاصة بأسماء الخدمات وشبكات Docker المشتركة. ثم تحقّق بشكل منفصل من كل مسار لوحدة تخزين المضيف أُعيدت تسميته بعد ترقية ZimaOS.
