مؤخراً واجهت مشاكل مع n8n مثل عدم إمكانية الوصول إلى عنوان IP المحلي حتى مع تشغيل حاوية docker. قصة طويلة لكنني أعدت تثبيت صورة كاملة على جهاز الحاسوب الفردي الذي يستضيف n8n docker وأريد إعادة تثبيتها الآن باستخدام docker compose لكن يبدو أنها تواجه عقبة مع الصورة
هنا ما قالته:
radxa@radxa-cubie-a7a:~/ngrokcompose$ docker pull docker.n8n.io/n8nio/n8n
Using default tag: latest
latest: Pulling from n8nio/n8n
ef354d822d2e: Pull complete
067acbc617c7: Download complete
3098f6258e8b: Pull complete
1b117172ef7a: Download complete
2051fdaef421: Pull complete
7ecc50e748e0: Pull complete
37a64cae8b50: Pulling fs layer
4f4fb700ef54: Download complete
cb121033bd30: Download complete
1b20058d68d1: Download complete
9da0ac8feff8: Download complete
e8b67aeaf9c3: Download complete
failed to copy: httpReadSeeker: failed open: failed to do request: Get “https://registry-1.docker.io/v2/n8nio/n8n/blobs/sha256:37a64cae8b506955f09cb0095c906c50d1d027d1590c41d29c27ad580f8c1fef”: net/http: timeout awaiting response headers
أعتقد أن المشكلة تكمن في المكان الذي يتم توجيه تنزيل الصورة إليه. على الصفحة الرسمية لـ n8n و Docker Hub، تستخدم نفس الصورة التي لا تعمل. هل يمكن لأحد مساعدتي؟
لست متأكداً إذا كانت المشكلة الأصلية المتمثلة في عدم إمكانية الوصول إلى عنوان IP المحلي (مثل استمرار التخزين المؤقت) مرتبطة بهذا أيضاً
سيتم عرض ملف docker compose أدناه
GNU nano 5.4 docker-compose.yaml
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
السبب في عدم قدرتك على الوصول إلى n8n عبر عنوان IP المحلي للـ SBC (على سبيل المثال، http://192.168.1.x:5678) موجود في الواقع في ملف docker-compose.yaml الخاص بك:
ports:
"127.0.0.1:5678:5678"
غيّر هذا السطر للسماح بالاتصالات من أي عنوان IP على شبكتك:
ports:
"5678:5678"
سجل docker.n8n.io هو مرآة توفرها n8n، لكنها تشير في النهاية إلى Docker Hub. إذا كانت هذه المرآة المحددة تواجه مشاكل توجيه إلى موقعك، فحاول سحب الصورة القياسية مباشرة من Docker Hub بدلاً من ذلك.
في ملف docker-compose.yaml الخاص بك، غيّر: image: docker.n8n.io/n8nio/n8n إلى image: n8nio/n8n:latest
يمكنك أيضاً محاولة فرض جهاز SBC الخاص بك على استخدام DNS من Google.
هل يمكنك محاولة تسجيل الدخول إلى Docker Hub ثم سحب الصورة.
أيضًا، بدلاً من علامة latest، هل يمكنك محاولة التثبيت على إصدار محدد، على سبيل المثال، 2.34.5
لست متأكداً ما تعنيه بتسجيل الدخول إلى Dockerhub لسحب الصورة. يمكنني بالفعل رؤية التعليمات لسحب الصورة دون تسجيل الدخول، وهي نفس التعليمات التي كنت أعرضها.
أي إصدار محدد تريد مني أن أسحبه؟
يجب أن أذكر أيضاً أن SBC الذي أستخدمه هو Radxa A7A وهو ARMv8 أو arm64، لذا جربت سحب نسخ أخرى من docker hub التي تحتوي على aarm64 في الاسم لكن التعليمات تبدو متطابقة باستثناء حقل النسخ الواحد على الجانب الأيمن الذي يقول docker pull n8nio/n8n:2.35.1-arm64
تم سحب هذا الإصدار arm بنجاح، كما أنه يعمل مع compose لكن الآن أواجه نفس المشكلة التي واجهتها من قبل حيث أن عنوان URL المحلي يبقى يحمّل فقط
هل يمكنك تعديل ملف compose الخاص بك ليكون مشابهاً لهذا
services:
n8n:
image: n8nio/n8n:2.35.1-arm64
restart: always
ports:
# قم بإلغاء التعليق عن السطر الذي تفضله:
# - "0.0.0.0:5678:5678" # عرّض على كل واجهة
- "192.168.1.100:5678:5678" # عرّض فقط على هذا العنوان IP
env_file: .env
volumes:
- n8n_data:/home/node/.n8n
# ------- متغيرات عنوان URL المفيدة لـ n8n (انظر الخطوة 2) -------
environment:
- N8N_HOST=192.168.1.100 # أو 0.0.0.0 إذا استخدمت تعيين 0.0.0.0
- N8N_PORT=5678
- N8N_URL=http://192.168.1.100:5678
لكنني اكتشفت أيضاً أن خدمات أخرى لا تريد التحميل في المتصفح مثل حاوية Home Assistant docker الخاصة بي، و Plex و Jellyfin. فهي تستمر في التحميل فقط. حتى Home Assistant استمر في التحميل على هاتفي. اتصال الإيثرنت بخير لأنني أستطيع الاتصال عبر SSH بـ SBC.