فشل ترقية الويب

مرحباً

أواجه مشكلة في استعادة ترقية فاشلة على جهاز محلي يعمل بنظام Ubuntu 20.04.5 LTS (Focal Fossa). بعد التحديث الفاشل، قمت بتشغيل الأوامر التالية من سطر الأوامر أولاً:

sudo apt-get update
sudo apt-get upgrade
cd /var/discourse
git pull
sudo ./launcher rebuild app

كانت آخر جزء من المخرجات كالتالي:

- dist/javascripts/workbox/workbox-expiration.dev.js: 20.83 KB (5.48 KB gzipped)
 - dist/javascripts/workbox/workbox-expiration.prod.js: 2.82 KB (1.22 KB gzipped)
 - dist/javascripts/workbox/workbox-routing.dev.js: 31.54 KB (7.58 KB gzipped)
 - dist/javascripts/workbox/workbox-routing.prod.js: 3.32 KB (1.44 KB gzipped)
 - dist/javascripts/workbox/workbox-strategies.dev.js: 34.65 KB (4.79 KB gzipped)
 - dist/javascripts/workbox/workbox-strategies.prod.js: 4.75 KB (1.16 KB gzipped)
 - dist/javascripts/workbox/workbox-sw.js: 1.3 KB (741 B gzipped)
Done in 90.53s.

I, [2022-11-24T15:11:00.523692 #1]  INFO -- : Terminating async processes
I, [2022-11-24T15:11:00.523748 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 42
I, [2022-11-24T15:11:00.523808 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 103
103:signal-handler (1669302660) Received SIGTERM scheduling shutdown...
2022-11-24 15:11:00.524 UTC [42] LOG:  received fast shutdown request
2022-11-24 15:11:00.540 UTC [42] LOG:  aborting any active transactions
2022-11-24 15:11:00.542 UTC [42] LOG:  background worker "logical replication launcher" (PID 51) exited with exit code 1
2022-11-24 15:11:00.544 UTC [46] LOG:  shutting down
103:M 24 Nov 2022 15:11:00.546 # User requested shutdown...
103:M 24 Nov 2022 15:11:00.546 * Saving the final RDB snapshot before exiting.
103:M 24 Nov 2022 15:11:00.597 * DB saved on disk
103:M 24 Nov 2022 15:11:00.597 # Redis is now ready to exit, bye bye...
2022-11-24 15:11:00.680 UTC [42] LOG:  database system is shut down


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 1415 exit 1>
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
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.
abfc5da15ae62310ad82ccb495992f76ef7b9a87b7bb024ca4bf327ea993bc54

ثم جربت الأمر التالي:

sudo apt-get dist-upgrade 
cd /var/discourse
git pull
sudo ./launcher rebuild app

وأصبحت المخرجات الآن كالتالي:

sudo ./launcher rebuild app
WARNING: Docker version 17.05.0-ce deprecated, recommend upgrade to 17.06.2 or newer.
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 60 app
app
2.0.20220818-0047: Pulling from discourse/base
Digest: sha256:7734701087766821ffb2ddcef423754798bd345c2ac0d550131c6e6905c268e8
Status: Image is up to date for discourse/base:2.0.20220818-0047
/usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2022-11-24T17:05:57.385657 #1]  INFO -- : Reading from stdin
I, [2022-11-24T17:05:57.389797 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2022-11-24T17:05:57.422186 #1]  INFO -- : Generating locales (this might take a while)...
Generation complete.

I, [2022-11-24T17:05:57.422436 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2022-11-24T17:05:57.425262 #1]  INFO -- : 
I, [2022-11-24T17:05:57.425450 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2022-11-24T17:05:57.427977 #1]  INFO -- : 
I, [2022-11-24T17:05:57.428106 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2022-11-24T17:05:57.429878 #1]  INFO -- : 
I, [2022-11-24T17:05:57.429989 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2022-11-24T17:05:57.431844 #1]  INFO -- : 
I, [2022-11-24T17:05:57.431957 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2022-11-24T17:05:57.433756 #1]  INFO -- : 
I, [2022-11-24T17:05:57.433876 #1]  INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
2022/11/24 17:05:57 socat[19] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): No such file or directory
I, [2022-11-24T17:05:57.439214 #1]  INFO -- : 
I, [2022-11-24T17:05:57.439321 #1]  INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2022-11-24T17:05:57.441654 #1]  INFO -- : 
I, [2022-11-24T17:05:57.441752 #1]  INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2022-11-24T17:05:57.444021 #1]  INFO -- : 
I, [2022-11-24T17:05:57.444120 #1]  INFO -- : > mkdir -p /shared/postgres_run/13-main.pg_stat_tmp
I, [2022-11-24T17:05:57.446040 #1]  INFO -- : 
I, [2022-11-24T17:05:57.446171 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run/13-main.pg_stat_tmp
I, [2022-11-24T17:05:57.448063 #1]  INFO -- : 
I, [2022-11-24T17:05:57.452270 #1]  INFO -- : File > /etc/service/postgres/run  chmod: +x  chown: 
I, [2022-11-24T17:05:57.456198 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x  chown: 
I, [2022-11-24T17:05:57.460141 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  chown: 
I, [2022-11-24T17:05:57.464080 #1]  INFO -- : File > /root/upgrade_postgres  chmod: +x  chown: 
I, [2022-11-24T17:05:57.464267 #1]  INFO -- : > chown -R root /var/lib/postgresql/13/main
I, [2022-11-24T17:05:57.537077 #1]  INFO -- : 
I, [2022-11-24T17:05:57.537178 #1]  INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/13/bin/initdb -D /shared/postgres_data || exit 0
I, [2022-11-24T17:05:57.538742 #1]  INFO -- : 
I, [2022-11-24T17:05:57.538799 #1]  INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2022-11-24T17:05:57.550302 #1]  INFO -- : 
I, [2022-11-24T17:05:57.550394 #1]  INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2022-11-24T17:05:57.552387 #1]  INFO -- : 
I, [2022-11-24T17:05:57.552528 #1]  INFO -- : > /root/upgrade_postgres
I, [2022-11-24T17:05:57.556422 #1]  INFO -- : 
I, [2022-11-24T17:05:57.556533 #1]  INFO -- : > rm /root/upgrade_postgres
I, [2022-11-24T17:05:57.558395 #1]  INFO -- : 
I, [2022-11-24T17:05:57.558734 #1]  INFO -- : Replacing data_directory = '/var/lib/postgresql/13/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-24T17:05:57.559138 #1]  INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-24T17:05:57.559350 #1]  INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-24T17:05:57.559550 #1]  INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-24T17:05:57.559748 #1]  INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-24T17:05:57.559945 #1]  INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-24T17:05:57.560122 #1]  INFO -- : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2022-11-24T17:05:57.562571 #1]  INFO -- : 
I, [2022-11-24T17:05:57.562855 #1]  INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-24T17:05:57.563086 #1]  INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-24T17:05:57.563295 #1]  INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-24T17:05:57.563506 #1]  INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres  peer in /etc/postgresql/13/main/pg_hba.conf
I, [2022-11-24T17:05:57.563702 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2022-11-24T17:05:57.563874 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) with host all all ::/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2022-11-24T17:05:57.564025 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main
I, [2022-11-24T17:05:57.565221 #1]  INFO -- : > sleep 5
2022-11-24 17:05:57.591 UTC [42] FATAL:  private key file "/etc/ssl/private/ssl-cert-snakeoil.key" must be owned by the database user or root
2022-11-24 17:05:57.591 UTC [42] LOG:  database system is shut down
I, [2022-11-24T17:06:02.567410 #1]  INFO -- : 
I, [2022-11-24T17:06:02.567949 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
createdb: error: could not connect to database template1: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
	Is the server running locally and accepting connections on that socket?
I, [2022-11-24T17:06:02.612636 #1]  INFO -- : 
I, [2022-11-24T17:06:02.612780 #1]  INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
	Is the server running locally and accepting connections on that socket?
I, [2022-11-24T17:06:02.649900 #1]  INFO -- : 
I, [2022-11-24T17:06:02.650042 #1]  INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
	Is the server running locally and accepting connections on that socket?
I, [2022-11-24T17:06:02.688244 #1]  INFO -- : 
I, [2022-11-24T17:06:02.688412 #1]  INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
	Is the server running locally and accepting connections on that socket?
I, [2022-11-24T17:06:02.725728 #1]  INFO -- : 
I, [2022-11-24T17:06:02.725969 #1]  INFO -- : Terminating async processes


FAILED
--------------------
Pups::ExecError: su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' failed with return #<Process::Status: pid 54 exit 2>
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
bootstrap failed with exit code 2
** 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.
8c252b2f3146df27193b8a6966b36a75230460f92397cd206aa5540082090660

هل يمكن لأي شخص المساعدة؟

أهلاً بك @Nanovitruvius :slight_smile:

كانت هناك بعض التقارير عن فشل الترقيات خلال الساعة الماضية أو نحو ذلك، وتم وضع بعض الإصلاحات الآن والتي يبدو أنها نجحت لمعظم المستخدمين. :+1:

الخطأ \"alter schema public owner to discourse;\" في مربع الكود الثاني الخاص بك ظهر في اليوم الآخر أيضاً، وكانت النصيحة هي:

يبدو لي أن هذا هو الجزء المهم - ملكية ملف ما خاطئة، بطريقة ما:

في حالتي (تثبيت يعمل ولم يتم تحديثه منذ أسبوع أو نحو ذلك) هذا الملف مملوك بواسطة root:

# cd /var/discourse/
# ./launcher enter app
x86_64 arch detected.
/var/www/discourse# ls -l /etc/ssl/private/ssl-cert-snakeoil.key
-rw-r----- 1 root ssl-cert 1704 Jul 20 00:14 /etc/ssl/private/ssl-cert-snakeoil.key
# exit

هذا الإصدار من دوكر أقدم من خمس سنوات. نوصي بشدة بالنظر في ترقيته أثناء معالجتك للنقاط الأخرى المذكورة أعلاه.

شكراً جزيلاً على ردودك السريعة!
@JammyDodger - لقد قمت بزيادة السطر ذي الصلة إلى 10 ثوانٍ، ولكن لا يزال لدي نفس المشكلة الآن كما كانت من قبل (فهي تعود دائمًا بشهادة SSL قاتلة.
@Ed_S لقد تحققت من ملكية الملف كما اقترحت، ولكنه يبدو مطابقًا لملفك (باستثناء التواريخ):

nano@nano:/var/discourse$ sudo ls -l /etc/ssl/private/ssl-cert-snakeoil.key
-rw-r----- 1 root ssl-cert 1704 jan.  11  2017 /etc/ssl/private/ssl-cert-snakeoil.key

ومع ذلك، اضطررت إلى استخدام sudo لتشغيل الأمر، لذا ربما أحتاج إلى منح بعض الامتيازات الإضافية عند تشغيل التحديث؟ أقوم بتشغيله باستخدام sudo ./launcher rebuild app لذلك لست متأكدًا مما يمكنني فعله هنا.

Stephen - سأقوم بترقية docker الآن وأعيد تشغيل كل شيء، ثم أبلغ عن النتائج هنا.

شكراً جزيلاً على كل مساعدتكم!

لقد قمت الآن بترقية Docker إلى أحدث إصدار، ولا يزال الخطأ يبدو كما هو. أثناء الترقية، حصلت على بعض أخطاء الأذونات (يبدو أنها تعمل بشكل جيد):

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
قراءة قوائم الحزم... تم
بناء شجرة التبعيات       
قراءة معلومات الحالة... تم
سيتم تثبيت الحزم الإضافية التالية:
  docker-ce-rootless-extras docker-scan-plugin pigz slirp4netns
الحزم المقترحة:
  aufs-tools cgroupfs-mount | cgroup-lite
سيتم تثبيت الحزم الجديدة التالية:
  containerd.io docker-ce docker-ce-cli docker-ce-rootless-extras docker-compose-plugin docker-scan-plugin pigz slirp4netns
0 تم تحديثها، 8 تم تثبيتها حديثًا، 0 لإزالتها و 0 غير محدثة.
يحتاج إلى جلب 111 ميجابايت من الأرشيف.
بعد هذا الإجراء، سيتم استخدام 428 ميجابايت من مساحة القرص الإضافية.
هل تريد المتابعة؟ [Y/n] 
جلب:1 https://download.docker.com/linux/ubuntu focal/stable amd64 containerd.io amd64 1.6.10-1 [27,7 ميجابايت]
جلب:2 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-ce-cli amd64 5:20.10.21~3-0~ubuntu-focal [41,5 ميجابايت]
جلب:3 http://archive.ubuntu.com/ubuntu focal/universe amd64 pigz amd64 2.4-1 [57,4 كيلوبايت]
جلب:4 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-ce amd64 5:20.10.21~3-0~ubuntu-focal [20,5 ميجابايت]
جلب:5 http://archive.ubuntu.com/ubuntu focal/universe amd64 slirp4netns amd64 0.4.3-1 [74,3 كيلوبايت]
جلب:6 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-ce-rootless-extras amd64 5:20.10.21~3-0~ubuntu-focal [8 394 كيلوبايت]
جلب:7 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-compose-plugin amd64 2.12.2~ubuntu-focal [9 567 كيلوبايت]
جلب:8 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-scan-plugin amd64 0.21.0~ubuntu-focal [3 622 كيلوبايت]
تم جلب 111 ميجابايت في 2 ثانية (73,6 ميجابايت/ثانية)                
تحديد حزمة pigz التي لم يتم اختيارها سابقًا.
(قراءة قاعدة البيانات ... 308915 ملفًا ودليلًا مثبتًا حاليًا.)
التحضير لفك ضغط .../0-pigz_2.4-1_amd64.deb ...
فك ضغط pigz (2.4-1) ...
تحديد حزمة containerd.io التي لم يتم اختيارها سابقًا.
التحضير لفك ضغط .../1-containerd.io_1.6.10-1_amd64.deb ...
فك ضغط containerd.io (1.6.10-1) ...
تحديد حزمة docker-ce-cli التي لم يتم اختيارها سابقًا.
التحضير لفك ضغط .../2-docker-ce-cli_5%3a20.10.21~3-0~ubuntu-focal_amd64.deb ...
فك ضغط docker-ce-cli (5:20.10.21~3-0~ubuntu-focal) ...
تحديد حزمة docker-ce التي لم يتم اختيارها سابقًا.
التحضير لفك ضغط .../3-docker-ce_5%3a20.10.21~3-0~ubuntu-focal_amd64.deb ...
فك ضغط docker-ce (5:20.10.21~3-0~ubuntu-focal) ...
تحديد حزمة docker-ce-rootless-extras التي لم يتم اختيارها سابقًا.
التحضير لفك ضغط .../4-docker-ce-rootless-extras_5%3a20.10.21~3-0~ubuntu-focal_amd64.deb ...
فك ضغط docker-ce-rootless-extras (5:20.10.21~3-0~ubuntu-focal) ...
تحديد حزمة docker-compose-plugin التي لم يتم اختيارها سابقًا.
التحضير لفك ضغط .../5-docker-compose-plugin_2.12.2~ubuntu-focal_amd64.deb ...
فك ضغط docker-compose-plugin (2.12.2~ubuntu-focal) ...
تحديد حزمة docker-scan-plugin التي لم يتم اختيارها سابقًا.
التحضير لفك ضغط .../6-docker-scan-plugin_0.21.0~ubuntu-focal_amd64.deb ...
فك ضغط docker-scan-plugin (0.21.0~ubuntu-focal) ...
تحديد حزمة slirp4netns التي لم يتم اختيارها سابقًا.
التحضير لفك ضغط .../7-slirp4netns_0.4.3-1_amd64.deb ...
فك ضغط slirp4netns (0.4.3-1) ...
إعداد slirp4netns (0.4.3-1) ...
إعداد docker-scan-plugin (0.21.0~ubuntu-focal) ...
إعداد containerd.io (1.6.10-1) ...
تم إنشاء رابط رمزي /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service.
إعداد docker-compose-plugin (2.12.2~ubuntu-focal) ...
إعداد docker-ce-cli (5:20.10.21~3-0~ubuntu-focal) ...
إعداد pigz (2.4-1) ...
إعداد docker-ce-rootless-extras (5:20.10.21~3-0~ubuntu-focal) ...
إعداد docker-ce (5:20.10.21~3-0~ubuntu-focal) ...
معالجة المحفزات لـ man-db (2.9.1-1) ...
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/hu/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/hu/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/hu/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/fi/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/fi/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/fi/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/ja/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/ja/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/ja/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/ko/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/ko/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/ko/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/fr.UTF-8/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/fr.UTF-8/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/fr.UTF-8/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/tr/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/tr/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/tr/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/pt_BR/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/pt_BR/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/pt_BR/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/id/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/id/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/id/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/it/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/it/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/it/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/de/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/de/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/de/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/da/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/da/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/da/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/fr.ISO8859-1/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/fr.ISO8859-1/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/fr.ISO8859-1/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/pl/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/pl/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/pl/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/zh_TW/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/zh_TW/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/zh_TW/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/gl/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/gl/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/gl/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/sv/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/sv/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/sv/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/nl/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/nl/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/nl/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/sl/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/sl/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/sl/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/pt/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/pt/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/pt/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/ru/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/ru/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/ru/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/sr/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/sr/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/sr/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/es/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/es/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/es/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/cs/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/cs/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/cs/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/fr/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/fr/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/fr/50779: مسموح بالأذونات
/usr/bin/mandb: لا يمكن تغيير أذونات /var/cache/man/zh_CN/CACHEDIR.TAG: العملية غير مسموح بها
/usr/bin/mandb: لا يمكن إزالة /var/cache/man/zh_CN/CACHEDIR.TAG: مسموح بالأذونات
/usr/bin/mandb: fopen /var/cache/man/zh_CN/50779: مسموح بالأذونات
معالجة المحفزات لـ systemd (245.4-4ubuntu3.19) 

من الغريب أنه عند استخدام sudo يجب أن أحصل على أذونات مرفوضة؟

مخرجات إعادة بناء التطبيق الآن هي


nano@nano:/var/discourse$ sudo ./launcher rebuild app
تم اكتشاف معمارية x86_64.
تحذير: ملف containers/app.yml قابل للقراءة من قبل الجميع. يمكنك تأمين هذا الملف بتشغيل: chmod o-rwx containers/app.yml
ضمان أن المشغل محدث
جلب الأصل
المشغل محدث
إيقاف الحاوية القديمة
+ /usr/bin/docker stop -t 60 app
app
2.0.20220818-0047: جاري السحب من discourse/base
التجزئة: sha256:7734701087766821ffb2ddcef423754798bd345c2ac0d550131c6e6905c268e8
الحالة: الصورة محدثة لـ discourse/base:2.0.20220818-0047
docker.io/discourse/base:2.0.20220818-0047
/usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2022-11-25T09:00:51.131964 #1]  INFO -- : القراءة من stdin
I, [2022-11-25T09:00:51.135935 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2022-11-25T09:00:51.171482 #1]  INFO -- : توليد اللغات (قد يستغرق هذا بعض الوقت)...
اكتمل التوليد.

I, [2022-11-25T09:00:51.171677 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2022-11-25T09:00:51.176135 #1]  INFO -- : 
I, [2022-11-25T09:00:51.176692 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2022-11-25T09:00:51.179060 #1]  INFO -- : 
I, [2022-11-25T09:00:51.179185 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2022-11-25T09:00:51.181507 #1]  INFO -- : 
I, [2022-11-25T09:00:51.181637 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2022-11-25T09:00:51.183530 #1]  INFO -- : 
I, [2022-11-25T09:00:51.183660 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2022-11-25T09:00:51.185995 #1]  INFO -- : 
I, [2022-11-25T09:00:51.186116 #1]  INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
2022/11/25 09:00:51 socat[18] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): لا يوجد ملف أو دليل
I, [2022-11-25T09:00:51.203185 #1]  INFO -- : 
I, [2022-11-25T09:00:51.203547 #1]  INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2022-11-25T09:00:51.212117 #1]  INFO -- : 
I, [2022-11-25T09:00:51.212479 #1]  INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2022-11-25T09:00:51.220922 #1]  INFO -- : 
I, [2022-11-25T09:00:51.221289 #1]  INFO -- : > mkdir -p /shared/postgres_run/13-main.pg_stat_tmp
I, [2022-11-25T09:00:51.228453 #1]  INFO -- : 
I, [2022-11-25T09:00:51.229084 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run/13-main.pg_stat_tmp
I, [2022-11-25T09:00:51.236038 #1]  INFO -- : 
I, [2022-11-25T09:00:51.251481 #1]  INFO -- : ملف > /etc/service/postgres/run  chmod: +x  chown: 
I, [2022-11-25T09:00:51.266078 #1]  INFO -- : ملف > /etc/service/postgres/log/run  chmod: +x  chown: 
I, [2022-11-25T09:00:51.280710 #1]  INFO -- : ملف > /etc/runit/3.d/99-postgres  chmod: +x  chown: 
I, [2022-11-25T09:00:51.295423 #1]  INFO -- : ملف > /root/upgrade_postgres  chmod: +x  chown: 
I, [2022-11-25T09:00:51.296150 #1]  INFO -- : > chown -R root /var/lib/postgresql/13/main
I, [2022-11-25T09:00:51.404140 #1]  INFO -- : 
I, [2022-11-25T09:00:51.404284 #1]  INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/13/bin/initdb -D /shared/postgres_data || exit 0
I, [2022-11-25T09:00:51.406112 #1]  INFO -- : 
I, [2022-11-25T09:00:51.406196 #1]  INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2022-11-25T09:00:51.417965 #1]  INFO -- : 
I, [2022-11-25T09:00:51.418059 #1]  INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2022-11-25T09:00:51.420209 #1]  INFO -- : 
I, [2022-11-25T09:00:51.420320 #1]  INFO -- : > /root/upgrade_postgres
I, [2022-11-25T09:00:51.424814 #1]  INFO -- : 
I, [2022-11-25T09:00:51.424928 #1]  INFO -- : > rm /root/upgrade_postgres
I, [2022-11-25T09:00:51.426794 #1]  INFO -- : 
I, [2022-11-25T09:00:51.427083 #1]  INFO -- : استبدال data_directory = '/var/lib/postgresql/13/main' بـ data_directory = '/shared/postgres_data' في /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T09:00:51.427479 #1]  INFO -- : استبدال (?-mix:#?listen_addresses *=.*) بـ listen_addresses = '*' في /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T09:00:51.427699 #1]  INFO -- : استبدال (?-mix:#?synchronous_commit *=.*) بـ synchronous_commit = $db_synchronous_commit في /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T09:00:51.427898 #1]  INFO -- : استبدال (?-mix:#?shared_buffers *=.*) بـ shared_buffers = $db_shared_buffers في /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T09:00:51.428093 #1]  INFO -- : استبدال (?-mix:#?work_mem *=.*) بـ work_mem = $db_work_mem في /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T09:00:51.428287 #1]  INFO -- : استبدال (?-mix:#?default_text_search_config *=.*) بـ default_text_search_config = '$db_default_text_search_config' في /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T09:00:51.428462 #1]  INFO -- : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2022-11-25T09:00:51.432155 #1]  INFO -- : 
I, [2022-11-25T09:00:51.432441 #1]  INFO -- : استبدال (?-mix:#?checkpoint_segments *=.*) بـ checkpoint_segments = $db_checkpoint_segments في /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T09:00:51.432668 #1]  INFO -- : استبدال (?-mix:#?logging_collector *=.*) بـ logging_collector = $db_logging_collector في /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T09:00:51.432878 #1]  INFO -- : استبدال (?-mix:#?log_min_duration_statement *=.*) بـ log_min_duration_statement = $db_log_min_duration_statement في /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T09:00:51.433089 #1]  INFO -- : استبدال (?-mix:^#local +replication +postgres +peer$) بـ local replication postgres  peer في /etc/postgresql/13/main/pg_hba.conf
I, [2022-11-25T09:00:51.433281 #1]  INFO -- : استبدال (?-mix:^host.*all.*all.*127.*$) بـ host all all 0.0.0.0/0 md5 في /etc/postgresql/13/main/pg_hba.conf
I, [2022-11-25T09:00:51.433452 #1]  INFO -- : استبدال (?-mix:^host.*all.*all.*::1\/128.*$) بـ host all all ::/0 md5 في /etc/postgresql/13/main/pg_hba.conf
I, [2022-11-25T09:00:51.433603 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main
I, [2022-11-25T09:00:51.434859 #1]  INFO -- : > sleep 10
2022-11-25 09:00:51.521 UTC [41] FATAL: يجب أن يكون ملف المفتاح الخاص "/etc/ssl/private/ssl-cert-snakeoil.key" مملوكًا لمستخدم قاعدة البيانات أو root
2022-11-25 09:00:51.521 UTC [41] LOG: تم إيقاف نظام قاعدة البيانات
I, [2022-11-25T09:01:01.437220 #1]  INFO -- : 
I, [2022-11-25T09:01:01.437718 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
createdb: خطأ: تعذر الاتصال بقاعدة البيانات template1: فشل الاتصال بالخادم عبر المقبس "/var/run/postgresql/.s.PGSQL.5432": لا يوجد ملف أو دليل
	هل الخادم يعمل محليًا ويقبل الاتصالات على هذا المقبس؟
I, [2022-11-25T09:01:01.503795 #1]  INFO -- : 
I, [2022-11-25T09:01:01.503958 #1]  INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
psql: خطأ: فشل الاتصال بالخادم عبر المقبس "/var/run/postgresql/.s.PGSQL.5432": لا يوجد ملف أو دليل
	هل الخادم يعمل محليًا ويقبل الاتصالات على هذا المقبس؟
I, [2022-11-25T09:01:01.548995 #1]  INFO -- : 
I, [2022-11-25T09:01:01.549398 #1]  INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
psql: خطأ: فشل الاتصال بالخادم عبر المقبس "/var/run/postgresql/.s.PGSQL.5432": لا يوجد ملف أو دليل
	هل الخادم يعمل محليًا ويقبل الاتصالات على هذا المقبس؟
I, [2022-11-25T09:01:01.593736 #1]  INFO -- : 
I, [2022-11-25T09:01:01.593899 #1]  INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
psql: خطأ: فشل الاتصال بالخادم عبر المقبس "/var/run/postgresql/.s.PGSQL.5432": لا يوجد ملف أو دليل
	هل الخادم يعمل محليًا ويقبل الاتصالات على هذا المقبس؟
I, [2022-11-25T09:01:01.631113 #1]  INFO -- : 
I, [2022-11-25T09:01:01.631506 #1]  INFO -- : إنهاء العمليات غير المتزامنة


فشل
--------------------
Pups::ExecError: فشل su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' مع العودة #<Process::Status: pid 53 exit 2>
موقع الفشل: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
فشل التنفيذ مع المعاملات "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
فشل التمهيد مع رمز الخروج 2
** فشل التمهيد ** يرجى التمرير للأعلى والبحث عن رسائل الخطأ السابقة، قد يكون هناك أكثر من واحد.
قد يساعد ./discourse-doctor في تشخيص المشكلة.
d3281b165492d5420df227f46735618325f4b80a1c3a11643dcef514ec343406
nano@nano:/var/discourse$ 

لقد حاولت الآن باستخدام sleep 10 و sleep 60 ولكن كلاهما يعطي نفس المخرجات (باستثناء سطر INFO – : > sleep 60)

يبدو أنك تتحقق من الملف على المضيف: تحتاج إلى الدخول إلى التطبيق والتحقق منه من الداخل.

أنا أعتذر، وأنت على حق هنا، يبدو أن الأذونات خاطئة تمامًا:

root@nano-app:/var/www/discourse# sudo ls -l /etc/ssl/private/ssl-cert-snakeoil.key
sudo: /etc/sudo.conf is owned by uid 1000, should be 0
sudo: /etc/sudo.conf is owned by uid 1000, should be 0
sudo: error in /etc/sudo.conf, line 0 while loading plugin "sudoers_policy"
sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0
sudo: fatal error, unable to load plugins
root@nano-app:/var/www/discourse# 

ماذا تقترح لإصلاح هذا؟

يبدو هذا شيئًا مختلفًا: أنت بالفعل المستخدم الجذر (root)، لذا لا تحتاج إلى sudo في هذه الحالة، وبالتالي لا داعي للقلق بشأن هذه الأخطاء.

ما نوع التثبيت الذي تحاول ترقيته: هل هو تثبيت قياسي؟

تثبيت قياسي، لا أعتقد أن لدينا أي إضافات (لقد مر وقت طويل منذ أن قمت بالتثبيت)، إنه على جهاز محلي، وصغير نسبيًا (نسخة احتياطية بحجم 500 ميجابايت تقريبًا)

لقد تحققت مرة أخرى بدون sudo والمالك هو discourse:

root@nano-app:/var/www/discourse# ls -l /etc/ssl/private/ssl-cert-snakeoil.key
-rw-r----- 1 discourse ssl-cert 1704 Jul 20 00:14 /etc/ssl/private/ssl-cert-snakeoil.key

لا يمكن تشغيل ./launcher enter app بدون sudo

قد يكون من المثير للاهتمام معرفة كيف حصل هذا الملف على ملكية خاطئة، ولكن إذا قمت بالدخول إلى التطبيق، يجب أن تكون قادرًا على

chown root /etc/ssl/private/ssl-cert-snakeoil.key
exit

وبعد ذلك يجب أن يتم إعادة البناء بشكل جيد.

شكرًا لك يا إد!

لقد قمت بتغيير الإذن الآن:

root@nano-app:/var/www/discourse# ls -l  /etc/ssl/private/ssl-cert-snakeoil.key
-rw-r----- 1 root ssl-cert 1704 Jul 20 00:14 /etc/ssl/private/ssl-cert-snakeoil.key

لكن إعادة البناء لا تزال تفشل مع:

sudo ./launcher rebuild app
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 60 app
app
2.0.20220818-0047: Pulling from discourse/base
Digest: sha256:7734701087766821ffb2ddcef423754798bd345c2ac0d550131c6e6905c268e8
Status: Image is up to date for discourse/base:2.0.20220818-0047
docker.io/discourse/base:2.0.20220818-0047
/usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2022-11-25T17:38:07.880613 #1]  INFO -- : Reading from stdin
I, [2022-11-25T17:38:07.884660 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2022-11-25T17:38:07.915616 #1]  INFO -- : Generating locales (this might take a while)...
Generation complete.

I, [2022-11-25T17:38:07.915833 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2022-11-25T17:38:07.918412 #1]  INFO -- : 
I, [2022-11-25T17:38:07.918633 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2022-11-25T17:38:07.920622 #1]  INFO -- : 
I, [2022-11-25T17:38:07.920765 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2022-11-25T17:38:07.922483 #1]  INFO -- : 
I, [2022-11-25T17:38:07.922608 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2022-11-25T17:38:07.924505 #1]  INFO -- : 
I, [2022-11-25T17:38:07.924632 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2022-11-25T17:38:07.926371 #1]  INFO -- : 
I, [2022-11-25T17:38:07.926506 #1]  INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
2022/11/25 17:38:07 socat[19] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): No such file or directory
I, [2022-11-25T17:38:07.930281 #1]  INFO -- : 
I, [2022-11-25T17:38:07.930387 #1]  INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2022-11-25T17:38:07.932835 #1]  INFO -- : 
I, [2022-11-25T17:38:07.932934 #1]  INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2022-11-25T17:38:07.935169 #1]  INFO -- : 
I, [2022-11-25T17:38:07.935269 #1]  INFO -- : > mkdir -p /shared/postgres_run/13-main.pg_stat_tmp
I, [2022-11-25T17:38:07.937189 #1]  INFO -- : 
I, [2022-11-25T17:38:07.937320 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run/13-main.pg_stat_tmp
I, [2022-11-25T17:38:07.939169 #1]  INFO -- : 
I, [2022-11-25T17:38:07.943171 #1]  INFO -- : File > /etc/service/postgres/run  chmod: +x  chown: 
I, [2022-11-25T17:38:07.947176 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x  chown: 
I, [2022-11-25T17:38:07.951156 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  chown: 
I, [2022-11-25T17:38:07.955181 #1]  INFO -- : File > /root/upgrade_postgres  chmod: +x  chown: 
I, [2022-11-25T17:38:07.955375 #1]  INFO -- : > chown -R root /var/lib/postgresql/13/main
I, [2022-11-25T17:38:08.024558 #1]  INFO -- : 
I, [2022-11-25T17:38:08.024689 #1]  INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/13/bin/initdb -D /shared/postgres_data || exit 0
I, [2022-11-25T17:38:08.026753 #1]  INFO -- : 
I, [2022-11-25T17:38:08.026809 #1]  INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2022-11-25T17:38:08.038131 #1]  INFO -- : 
I, [2022-11-25T17:38:08.038249 #1]  INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2022-11-25T17:38:08.040545 #1]  INFO -- : 
I, [2022-11-25T17:38:08.040726 #1]  INFO -- : > /root/upgrade_postgres
I, [2022-11-25T17:38:08.044864 #1]  INFO -- : 
I, [2022-11-25T17:38:08.045002 #1]  INFO -- : > rm /root/upgrade_postgres
I, [2022-11-25T17:38:08.046952 #1]  INFO -- : 
I, [2022-11-25T17:38:08.047197 #1]  INFO -- : Replacing data_directory = '/var/lib/postgresql/13/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T17:38:08.047658 #1]  INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T17:38:08.047886 #1]  INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T17:38:08.048083 #1]  INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T17:38:08.048276 #1]  INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T17:38:08.048520 #1]  INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T17:38:08.048721 #1]  INFO -- : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2022-11-25T17:38:08.051177 #1]  INFO -- : 
I, [2022-11-25T17:38:08.051547 #1]  INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T17:38:08.051777 #1]  INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T17:38:08.051980 #1]  INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T17:38:08.052185 #1]  INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres  peer in /etc/postgresql/13/main/pg_hba.conf
I, [2022-11-25T17:38:08.052376 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2022-11-25T17:38:08.052547 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) with host all all ::/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2022-11-25T17:38:08.052696 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main
I, [2022-11-25T17:38:08.054007 #1]  INFO -- : > sleep 60
2022-11-25 17:38:08.085 UTC [42] FATAL:  private key file "/etc/ssl/private/ssl-cert-snakeoil.key" must be owned by the database user or root
2022-11-25 17:38:08.085 UTC [42] LOG:  database system is shut down
I, [2022-11-25T17:39:08.056117 #1]  INFO -- : 
I, [2022-11-25T17:39:08.056699 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
createdb: error: could not connect to database template1: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
	Is the server running locally and accepting connections on that socket?
I, [2022-11-25T17:39:08.105263 #1]  INFO -- : 
I, [2022-11-25T17:39:08.105431 #1]  INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
	Is the server running locally and accepting connections on that socket?
I, [2022-11-25T17:39:08.142885 #1]  INFO -- : 
I, [2022-11-25T17:39:08.143051 #1]  INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
	Is the server running locally and accepting connections on that socket?
I, [2022-11-25T17:39:08.180416 #1]  INFO -- : 
I, [2022-11-25T17:39:08.180582 #1]  INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
	Is the server running locally and accepting connections on that socket?
I, [2022-11-25T17:39:08.217735 #1]  INFO -- : 
I, [2022-11-25T17:39:08.218076 #1]  INFO -- : Terminating async processes


FAILED
--------------------
Pups::ExecError: su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' failed with return #<Process::Status: pid 54 exit 2>
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
bootstrap failed with exit code 2
** 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.

أما عن كيفية تغير إذن ملف snakeoil.key، فلا أعرف. لقد كان هناك بعض التلاعب في مجلد var/discourse لتغيير الأذونات من المستخدم إلى root، لكنني لم أكن قريبًا أبدًا من هيكل مجلد /etc

لقد تحققت من حالة docker وحصلت على بعض التحذيرات هنا:

docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-11-25 18:47:58 CET; 5min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 1793 (dockerd)
      Tasks: 39
     Memory: 118.1M
     CGroup: /system.slice/docker.service
             ├─1793 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
             ├─2128 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 443 -container-ip xxx.xx.x.x  -container-port 443
             ├─2134 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 443 -container-ip xxx.xx.x.x -container-port 443
             ├─2148 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 80 -container-ip xxx.xx.x.x  -container-port 80
             └─2155 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 80 -container-ip xxx.xx.x.x  -container-port 80

nov. 25 18:47:57 nano dockerd[1793]: time="2022-11-25T18:47:57.319069348+01:00" level=warning msg="Your kernel does not support cgroup blkio weight"
nov. 25 18:47:57 nano dockerd[1793]: time="2022-11-25T18:47:57.319076217+01:00" level=warning msg="Your kernel does not support cgroup blkio weight_device"
nov. 25 18:47:57 nano dockerd[1793]: time="2022-11-25T18:47:57.319414040+01:00" level=info msg="Loading containers: start."
nov. 25 18:47:57 nano dockerd[1793]: time="2022-11-25T18:47:57.679737834+01:00" level=info msg="Default bridge (docker0) is assigned with an IP address xxx.xx.x.x . Daemon option --bip can be used to set a preferred IP address"
nov. 25 18:47:57 nano dockerd[1793]: time="2022-11-25T18:47:57.770958200+01:00" level=warning msg="auplink flush failed: " error="exec: \"auplink\": executable file not found in $PATH" method=Unmount storage-driver=aufs
nov. 25 18:47:58 nano dockerd[1793]: time="2022-11-25T18:47:58.375910870+01:00" level=info msg="Loading containers: done."
nov. 25 18:47:58 nano dockerd[1793]: time="2022-11-25T18:47:58.391980297+01:00" level=info msg="Docker daemon" commit=3056208 graphdriver(s)=aufs version=20.10.21
nov. 25 18:47:58 nano dockerd[1793]: time="2022-11-25T18:47:58.392379728+01:00" level=info msg="Daemon has completed initialization"
nov. 25 18:47:58 nano systemd[1]: Started Docker Application Container Engine.
nov. 25 18:47:58 nano dockerd[1793]: time="2022-11-25T18:47:58.470697756+01:00" level=info msg="API listen on /run/docker.sock"

حسنًا، عذرًا، لا توجد أفكار أخرى في الوقت الحالي.

كملاذ أخير، يرى المرء نصائح لأخذ نسخة احتياطية، وبدء تثبيت جديد، واستعادة النسخة الاحتياطية. لم أقم بذلك بنفسي قط!

هل يمكن أن يكون أحد المجلدات المحيطة به بأذونات غير صحيحة؟
بالنسبة لشجرة الملفات، أحصل على:

drwxr-xr-x 178 root root 12288 des.   1 09:56 .
root@nano:/etc# cd ssl
root@nano:/etc/ssl# ls -ld
drwxr-xr-x 4 root root 4096 juli   7 06:36 .
root@nano:/etc/ssl#  cd private/
root@nano:/etc/ssl/private# ls -ld
drwx--x--- 2 root ssl-cert 4096 jan.  11  2017 .

لا أعتقد أن هذه الأذونات خاطئة. ولكن هذا تاريخ قديم جدًا. كنت أتوقع أن تأتي هذه الأشياء في الحاويات المشحونة، لذلك يبدو من الممكن أن تكون متأخرًا جدًا في التحديثات، بطريقة ما.

هذا ما أراه (من خارج الحاوية)

/var/discourse# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
local_discourse/app latest 1727731a0700 4 months ago 3.19GB
discourse/base 2.0.20220720-0049 13ff18ca36a6 4 months ago 2.65GB

قد لا يكون هذا مفيدًا لهذه المشكلة المحددة (أو ربما يكون كذلك؟) ولكن ربما يستفيد شخص آخر يقرأه.

كنت أواجه مشكلة أيضًا في تحديث موقعي الليلة الماضية، مع نفس رسالة الخطأ تقريبًا:

Pups::ExecError: cd /var/www/discourse ....

لقد عزلّت السبب إلى مكونين إضافيين كتبتهما. كنت أستخدم المكون الإضافي Discourse Signature كمثال تعليمي لتعلم كيفية كتابة المكونات الإضافية في ذلك الوقت. نظرًا لأنني كنت أتبعه كمثال، فإن مكوناتي الإضافية الاثنين كانتا تعانيان أيضًا من هذه المشكلة التي كانت تمنع التحديث:

لقد نجح التعليق على أسطر المكون الإضافي في ملف yml الخاص بي. أدى إزالة نفس السطر في مستودعات المكون الإضافي أيضًا إلى إصلاح المشكلة والسماح لي بالتحديث.

للأسف، هذه ليست نفس رسالة الخطأ تمامًا: إنها ملخص لفشل أمر ما، ولكن سبب فشل الأمر يقع في وقت سابق في ملف السجل، وربما قبل ذلك بكثير. ستلاحظ أنه من الشائع هنا طلب المزيد من ملف السجل - من الشائع لصق القليل جدًا للقيام بأي تشخيص.

نعم، أنت على حق، هذا عادل. صياغتي ليست مثالية. كانت سطور السجل ذات الصلة بالفعل أعلى الخطأ النهائي الذي تم عرضه، لكن نقطة التوقف هي نفسها.

في حالتي، حدثت نقطة الفشل أثناء معالجة مستودعات الإضافات.