بعد امتلاكي قرصًا كاملاً وعدم تمكني من نقل صوري، قررت حذف كل شيء، وبدء حاوية discourse جديدة واستخدام النسخة الاحتياطية.
حذفت /var/discourse وقمت بتشغيل docker system prune -a
ثم اتبعت الدليل الرسمي. ولكن… هناك خطأ ما:
./launcher rebuild app
x86_64 arch detected.
Ensuring launcher is up to date
Fordere an von origin
Launcher is up-to-date
2.0.20230222-0048: Pulling from discourse/base
Digest: sha256:XXXX
Status: Image is up to date for discourse/base:2.0.20230222-0048
docker.io/discourse/base:2.0.20230222-0048
/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2023-03-04T12:04:27.482399 #1] INFO -- : Reading from stdin
I, [2023-03-04T12:04:27.486188 #1] INFO -- : > locale-gen $LANG && update-locale
I, [2023-03-04T12:04:28.456925 #1] INFO -- : Generating locales (this might take a while)...
Generation complete.
I, [2023-03-04T12:04:28.457319 #1] INFO -- : > mkdir -p /shared/postgres_run
I, [2023-03-04T12:04:28.581971 #1] INFO -- :
I, [2023-03-04T12:04:28.583082 #1] INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2023-03-04T12:04:28.588444 #1] INFO -- :
I, [2023-03-04T12:04:28.588792 #1] INFO -- : > chmod 775 /shared/postgres_run
I, [2023-03-04T12:04:28.591995 #1] INFO -- :
I, [2023-03-04T12:04:28.592147 #1] INFO -- : > rm -fr /var/run/postgresql
rm: cannot remove '/var/run/postgresql': Directory not empty
I, [2023-03-04T12:04:28.616079 #1] INFO -- :
FAILED
--------------------
Pups::ExecError: rm -fr /var/run/postgresql failed with return #<Process::Status: pid 16 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params "rm -fr /var/run/postgresql"
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
## هذا هو قالب حاوية Docker Discourse المستقل والمتكامل
##
## بعد إجراء تغييرات على هذا الملف، يجب عليك إعادة البناء
## /var/discourse/launcher rebuild app
##
## كن حذرًا جدًا عند التحرير!
## ملفات YAML حساسة للغاية للأخطاء في المسافات البيضاء أو المحاذاة!
## قم بزيارة http://www.yamllint.com/ للتحقق من صحة هذا الملف حسب الحاجة
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## قم بإلغاء التعليق على هذين السطرين إذا كنت ترغب في إضافة Lets Encrypt (https)
# - "templates/web.ssl.template.yml"
# - "templates/web.letsencrypt.ssl.template.yml"
## ما هي منافذ TCP/IP التي يجب أن تعرضها هذه الحاوية؟
## إذا كنت تريد أن تشارك Discourse منفذًا مع خادم ويب آخر مثل Apache أو nginx،
## راجع https://meta.discourse.org/t/17247 للحصول على التفاصيل
expose:
# - "7890:80" # http
# - "7891:443" # https
labels:
app_name: discourse
traefik.enable: true
traefik.http.routers.discourse.entrypoints: http
traefik.http.routers.discourse.rule: Host(`talk.spielleiten.de`) ## أدخل نطاقك هنا
traefik.http.middlewares.discourse-https-redirect.redirectscheme.scheme: https
traefik.http.routers.discourse.middlewares: discourse-https-redirect
traefik.http.routers.discourse-secure.entrypoints: https
traefik.http.routers.discourse-secure.rule: Host(`talk.spielleiten.de`) ## أدخل نطاقك هنا
traefik.http.routers.discourse-secure.tls: true
traefik.http.routers.discourse-secure.tls.certresolver: http
traefik.http.routers.discourse-secure.service: discourse
traefik.http.services.discourse.loadbalancer.server.port: 80
traefik.docker.network: proxy
docker_args:
- "--network=proxy"
networks:
- proxy
params:
db_default_text_search_config: "pg_catalog.english"
## قم بتعيين db_shared_buffers إلى حد أقصى 25٪ من الذاكرة الإجمالية.
## سيتم تعيينه تلقائيًا بواسطة bootstrap بناءً على الذاكرة العشوائية المكتشفة، أو يمكنك تجاوز ذلك
#db_shared_buffers: "256MB"
## يمكن أن يحسن أداء الفرز، ولكنه يضيف استخدام الذاكرة لكل اتصال
#db_work_mem: "40MB"
## أي مراجعة Git يجب أن تستخدمها هذه الحاوية؟ (الافتراضي: tests-passed)
#version: tests-passed
env:
LC_ALL: de_DE.UTF-8
LANG: de_DE.UTF-8
LANGUAGE: dn_DE.UTF-8
EMBER_CLI_PROD_ASSETS: 1
# DISCOURSE_DEFAULT_LOCALE: en
## كم عدد طلبات الويب المتزامنة التي يمكن دعمها؟ يعتمد على الذاكرة ووحدات المعالجة المركزية.
## سيتم تعيينه تلقائيًا بواسطة bootstrap بناءً على وحدات المعالجة المركزية المكتشفة، أو يمكنك تجاوز ذلك
#UNICORN_WORKERS: 3
## TODO: اسم النطاق الذي ستستجيب له هذه النسخة من Discourse
## مطلوب. لن تعمل Discourse برقم IP عارٍ.
DISCOURSE_HOSTNAME: talk.spielleiten.de
## قم بإلغاء التعليق إذا كنت تريد بدء تشغيل الحاوية بنفس
## اسم المضيف (-h) كما هو محدد أعلاه (الافتراضي "hostname-config")
#DOCKER_USE_HOSTNAME: true
## TODO: قائمة بالبريد الإلكتروني المفصولة بفواصل والتي ستصبح مسؤولة ومطورة
## عند التسجيل الأولي مثال 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: 'XXX'
## TODO: خادم البريد SMTP المستخدم للتحقق من الحسابات الجديدة وإرسال الإشعارات
# عنوان SMTP واسم المستخدم وكلمة المرور مطلوبة
# تحذير الحرف '#' في كلمة مرور SMTP يمكن أن يسبب مشاكل!
[تم الحذف لأسباب الخصوصية]
## عنوان CDN http أو https لهذه النسخة من Discourse (تم تكوينه للسحب)
## راجع https://meta.discourse.org/t/14857 للحصول على التفاصيل
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
## مفتاح Maxmind لتحديد الموقع الجغرافي للعنوان IP للبحث عن عنوان IP
## راجع https://meta.discourse.org/t/-/137387/23 للحصول على التفاصيل
DISCOURSE_MAXMIND_LICENSE_KEY: XXX
## حاوية Docker عديمة الحالة؛ يتم تخزين جميع البيانات في /shared
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## المكونات الإضافية تذهب هنا
## راجع https://meta.discourse.org/t/19157 للحصول على التفاصيل
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
## أي أوامر مخصصة لتشغيلها بعد البناء
run:
- exec: echo "Beginning of custom commands"
## إذا كنت تريد تعيين عنوان البريد الإلكتروني "من" لتسجيلك الأول، قم بإلغاء التعليق والتغيير:
## بعد الحصول على بريد التسجيل الأول، أعد التعليق على السطر. يحتاج فقط إلى التشغيل مرة واحدة.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec: echo "End of custom commands"
أفترض ذلك. لكن جميع الخدمات الأخرى في دوكر تعمل كما هو متوقع! إنها فقط الخطاب الذي لن يحاول الوصول إلى جذر البيانات الجديد.
لهذا السبب كنت آمل في العثور على حل هنا.
# ls -lsa /var/discourse/shared/standalone
إجمالي 16
4 drwxr-xr-x 4 root root 4096 6 مارس 08:34 .
4 drwxr-xr-x 3 root root 4096 6 مارس 08:34 ..
4 drwxr-xr-x 3 root root 4096 6 مارس 08:34 log
4 drwxrwxr-x 2 systemd-resolve systemd-timesync 4096 6 مارس 08:34 postgres_run
# ls -lsa /var/discourse/shared/standalone/postgres_run/
إجمالي 8
4 drwxrwxr-x 2 systemd-resolve systemd-timesync 4096 6 مارس 08:34 .
4 drwxr-xr-x 4 root root 4096 6 مارس 08:34 ..
هل هذا ما تتوقعه؟ يعرض df مساحة كافية، لذا فهي ليست مشكلة امتلاء القرص.
…
# ./discourse-doctor
DISCOURSE DOCTOR Mo 6. Mär 18:54:01 CET 2023
OS: Linux dracula 5.4.0-139-generic #156-Ubuntu SMP Fri Jan 20 17:27:18 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
تم العثور على containers/app.yml
==================== إعدادات YML ====================
[تم الحذف لأسباب تتعلق بالخصوصية]
==================== معلومات DOCKER ====================
DOCKER VERSION: Docker version 20.10.12, build 20.10.12-0ubuntu2~20.04.1
عمليات DOCKER (docker ps -a)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f6d3f502384f cthulhoo/ttrss-fpm-pgsql-static:latest ”/opt/tt-rss/updater…” 4 days ago Up 9 hours 9000/tcp ttrss-docker_updater_1
fb0c774b31cb cthulhoo/ttrss-web-nginx:latest ”/docker-entrypoint.…” 4 days ago Up 9 hours (healthy) 127.0.0.1:8280->80/tcp ttrss-docker_web-nginx_1
83a32795b305 cthulhoo/ttrss-fpm-pgsql-static:latest ”/opt/tt-rss/dcron.s…” 4 days ago Up 9 hours 9000/tcp ttrss-docker_backups_1
c211bc93f368 cthulhoo/ttrss-fpm-pgsql-static:latest ”/bin/sh -c ${SCRIPT…” 4 days ago Up 9 hours 9000/tcp ttrss-docker_app_1
4ecb89c6bb9f postgres:12-alpine ”docker-entrypoint.s…” 4 days ago Up 9 hours 5432/tcp ttrss-docker_db_1
c668703d805d traefik:latest ”/entrypoint.sh trae…” 4 days ago Up 9 hours 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp traefik
f67a63243f13 ghcr.io/paperless-ngx/paperless-ngx:latest ”/sbin/docker-entryp…” 4 days ago Up 9 hours (healthy) 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp paperless-web
d2fbf8682efb postgres:13 ”docker-entrypoint.s…” 4 days ago Up 9 hours 5432/tcp paperless-db
8284f03fdcd0 redis:6.0 ”docker-entrypoint.s…” 4 days ago Up 9 hours 6379/tcp paperless-redis
ab29487743b0 tootsuite/mastodon ”/usr/bin/tini -- no…” 4 days ago Up 9 hours (healthy) 3000/tcp, 4000/tcp mastodon_streaming_1
a117f5e785f8 tootsuite/mastodon ”/usr/bin/tini -- bu…” 4 days ago Up 9 hours (healthy) 3000/tcp, 4000/tcp mastodon_sidekiq_1
5a4a7e99230c tootsuite/mastodon ”/usr/bin/tini -- ba…” 4 days ago Up 9 hours (healthy) 3000/tcp, 4000/tcp mastodon_web_1
5484d4dd39b6 postgres:14-alpine ”docker-entrypoint.s…” 4 days ago Up 9 hours (healthy) 5432/tcp mastodon_db_1
ecb2e7cbdc0b redis:7-alpine ”docker-entrypoint.s…” 4 days ago Up 9 hours (healthy) 6379/tcp mastodon_redis_1
c211bc93f368 cthulhoo/ttrss-fpm-pgsql-static:latest ”/bin/sh -c ${SCRIPT…” 4 days ago Up 9 hours 9000/tcp ttrss-docker_app_1
تطبيق Discourse قيد التشغيل
==================== الإضافات ====================
- git clone https://github.com/discourse/docker_manager.git
لم يتم اكتشاف أي إضافات غير رسمية.
انظر https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb للحصول على القائمة الرسمية.
========================================
إصدار Discourse في talk.spielleiten.de: لم يتم العثور عليه
إصدار Discourse في localhost: لم يتم العثور عليه
==================== معلومات الذاكرة ====================
RAM (MB):
إجمالي مشغول فارغ مشترك مؤقت متاح
الذاكرة: 7870 2292 141 4207 5436 1101
التبديل: 2047 580 1467
==================== فحص مساحة القرص ====================
---------- مساحة قرص نظام التشغيل ----------
نظام الملفات الحجم المستخدم المتاح النسبة المئوية نقطة التركيب
/dev/sda2 109G 68G 36G 66% /
/dev/md0 3.7T 3.1T 581G 85% /mnt/raid
==================== معلومات القرص ====================
القرص /dev/sda: 111.81 GiB، 120034123776 بايت، 234441648 قطاعات
طراز القرص: Samsung SSD 840
الوحدات: قطاعات 1 * 512 = 512 بايت
حجم القطاع (منطقي/فعلي): 512 بايت / 512 بايت
حجم الإدخال/الإخراج (الحد الأدنى/الأمثل): 512 بايت / 512 بايت
نوع تسمية القرص: gpt
معرف القرص: F889FA6C-2FB7-44B6-8CDF-1E6A05B9E33D
الجهاز البداية النهاية القطاعات الحجم النوع
/dev/sda1 2048 1050623 1048576 512M نظام EFI
/dev/sda2 1050624 234440703 233390080 111.3G نظام ملفات Linux
القرص /dev/sdb: 186.32 GiB، 200049647616 بايت، 390721968 قطاعات
طراز القرص: SAMSUNG HD200HJ
الوحدات: قطاعات 1 * 512 = 512 بايت
حجم القطاع (منطقي/فعلي): 512 بايت / 512 بايت
حجم الإدخال/الإخراج (الحد الأدنى/الأمثل): 512 بايت / 512 بايت
نوع تسمية القرص: dos
معرف القرص: 0x13e913e8
الجهاز Boot البداية النهاية القطاعات الحجم النوع
/dev/sdb1 2048 390721967 390719920 186.3G 83 Linux
القرص /dev/sdc: 1.84 TiB، 2000398934016 بايت، 3907029168 قطاعات
طراز القرص: SAMSUNG HD203WI
الوحدات: قطاعات 1 * 512 = 512 بايت
حجم القطاع (منطقي/فعلي): 512 بايت / 512 بايت
حجم الإدخال/الإخراج (الحد الأدنى/الأمثل): 512 بايت / 512 بايت
نوع تسمية القرص: dos
معرف القرص: 0x00000000
الجهاز Boot البداية النهاية القطاعات الحجم النوع
/dev/sdc1 63 3907024064 3907024002 1.8T fd اكتشاف تلقائي لـ Linux RAID
القرص /dev/sde: 1.84 TiB، 2000398934016 بايت، 3907029168 قطاعات
طراز القرص: SAMSUNG HD203WI
الوحدات: قطاعات 1 * 512 = 512 بايت
حجم القطاع (منطقي/فعلي): 512 بايت / 512 بايت
حجم الإدخال/الإخراج (الحد الأدنى/الأمثل): 512 بايت / 512 بايت
نوع تسمية القرص: dos
معرف القرص: 0x54cd8732
الجهاز Boot البداية النهاية القطاعات الحجم النوع
/dev/sde1 63 3907024064 3907024002 1.8T fd اكتشاف تلقائي لـ Linux RAID
القرص /dev/sdd: 1.84 TiB، 2000398934016 بايت، 3907029168 قطاعات
طراز القرص: SAMSUNG HD203WI
الوحدات: قطاعات 1 * 512 = 512 بايت
حجم القطاع (منطقي/فعلي): 512 بايت / 512 بايت
حجم الإدخال/الإخراج (الحد الأدنى/الأمثل): 512 بايت / 512 بايت
نوع تسمية القرص: dos
معرف القرص: 0xd4a5e07f
الجهاز Boot البداية النهاية القطاعات الحجم النوع
/dev/sdd1 63 3907024064 3907024002 1.8T fd اكتشاف تلقائي لـ Linux RAID
القرص /dev/md0: 3.65 TiB، 4000792182784 بايت، 7814047232 قطاعات
الوحدات: قطاعات 1 * 512 = 512 بايت
حجم القطاع (منطقي/فعلي): 512 بايت / 512 بايت
حجم الإدخال/الإخراج (الحد الأدنى/الأمثل): 65536 بايت / 131072 بايت
==================== نهاية معلومات القرص ====================
==================== تم! ====================