"تركيب Docker الخاص بك لا يستخدم محرك تخزين مدعوم."

مرحباً، أنا مستخدم جديد في Discourse ولست أملك الكثير من المعرفة التقنية.

لقد قمت بتثبيت Discourse على نظام Lightsail Ubuntu 18.04.2 باستخدام الإرشادات الرسمية. المنتدى يعمل الآن دون أي مشكلة.

حاولت الآن تثبيت إضافة:

أظهر الأمر ./launcher rebuild app الخطأ التالي:

“تثبيت Docker الخاص بك لا يستخدم برنامج تشغيل تخزين مدعوم. إذا واصلنا، فقد ينتهي بك الأمر بتثبيت معطوب. يُوصى باستخدام برنامج تشغيل aufs، على الرغم من أن zfs/btrfs/overlay و overlay2 قد تعمل أيضاً. من المعروف أن برامج تشغيل التخزين الأخرى تسبب مشاكل. يمكنك معرفة نظام الملفات الذي تستخدمه بتشغيل أمر “docker info” والنظر في سطر ‘Storage Driver’. إذا كنت ترغب في المتابعة على أي حال باستخدام برنامج تشغيل التخزين غير المدعوم الحالي، فاقرأ كود مصدر launcher لمعرفة كيفية تجاوز هذا الفحص.”

لقد بحثت عن نفس الرسالة في هذا المنتدى، لكنني غير واضح تماماً حول ما يجب فعله بناءً على الردود.

أظهر أمر Docker info في إعداداتي استخدام overlay2.

لست متأكداً كيف يمكن أن يكون تثبيت Discourse ناجحاً، بينما يفشل تثبيت الإضافة وإعادة البناء.

بين التثبيت ومحاولتي لتثبيت الإضافة وإعادة البناء، قمت فقط بتحديث Discourse وبرنامج إدارة Docker وفقاً للتنبيه، وقمت بتشغيل أمر apt-get update و apt-get upgrade.

هل يمكن لأحد توضيح ما إذا كان overlay2 يمكن أن يعمل؟ أم أن aufs مطلوب؟ ما هي التعليمات بالضبط التي يجب اتباعها لتفعيل تثبيت الإضافة؟

شكراً جزيلاً
ماينارد

هل يمكنك تشغيل docker info ولصق الناتج هنا؟

شكرًا جزيلاً على الرد السريع. إليك مخرجات docker info:

Client:
 Debug Mode: false

Server:
 Containers: 1
Running: 1
Paused: 0
Stopped: 0
 Images: 2
 Server Version: 19.03.1
 Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc version: 425e105d5a03fabd737a126ad93d62a9eeede87f
 init version: fec3683
 Security Options:
apparmor
seccomp
Profile: default
 Kernel Version: 4.15.0-1044-aws
 Operating System: Ubuntu 18.04.2 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 1
 Total Memory: 1.945GiB
 Name: ip-172-26-45-250
 ID: X2FT:FW3R:QQM2:BNNU:4L3L:QYEV:WMI4:IC2T:LHJV:UNSG:RYHH:OWJ7
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
127.0.0.0/8
 Live Restore Enabled: false

WARNING: No swap limit support

أعتقد أنني أعرف ما يحدث.

جرب:

cd /var/discourse
git pull
./launcher rebuild app

شكرًا جزيلاً مرة أخرى على الرد السريع.

أضاف الأمر git pull نجح، وأصبح الآن ملحق مستكشف البيانات يعمل بشكل صحيح.

غريب. ماذا كان؟

حسنًا، قصة طويلة.

تغيّرت هيكلية مخرجات docker info بالكامل في Docker 19.x.

قمنا بإصلاح هذه المشكلة عندما كانت النسخة 19.x لا تزال في فرع الاختبار (beta) منذ أكثر من شهر في FIX: Make storage detection compatible with docker 19.x · discourse/discourse_docker@98c5fec · GitHub. وبما أن سكريبت التشغيل (launcher) الخاص بنا يقوم بالتحديث التلقائي، فإن هذه المشكلة لا تؤثر على معظم المستخدمين.

ومع ذلك، يتحقق سكريبت launcher الخاص بنا من توافق التخزين قبل التحديث التلقائي. لذا، قد يواجه الأشخاص الذين لديهم إصدار قديم من سكريبت التشغيل ويحدّثون Docker قبل تحديث سكريبت التشغيل أنفسهم هذه الحالة.

هذه ليست المرة الأولى التي نواجه فيها هذه المشكلة، ألا يمكن للمُشغّل التحديث أولاً ثم طلب إعادة التشغيل من المستخدم؟

نعم، يجب أن يعمل. هل ترغب في تجربة هذا التغيير؟