Échec de la mise à niveau du web

Bonjour

Je rencontre des difficultés pour récupérer une mise à niveau échouée sur une machine locale sous Ubuntu 20.04.5 LTS (Focal Fossa). Après l’échec de la mise à jour, j’ai exécuté les commandes suivantes depuis le terminal :

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

La dernière partie de la sortie était :

- 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)
Terminé en 90,53 s.

I, [2022-11-24T15:11:00.523692 #1]  INFO -- : Arrêt des processus asynchrones
I, [2022-11-24T15:11:00.523748 #1]  INFO -- : Envoi de INT à 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 -- : Envoi de TERM à exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 103
103:signal-handler (1669302660) SIGTERM reçu, planification de l'arrêt...
2022-11-24 15:11:00.524 UTC [42] LOG:  demande d'arrêt rapide reçue
2022-11-24 15:11:00.540 UTC [42] LOG:  annulation de toutes les transactions actives
2022-11-24 15:11:00.542 UTC [42] LOG:  le processus secondaire "lanceur de réplication logique" (PID 51) s'est terminé avec le code de sortie 1
2022-11-24 15:11:00.544 UTC [46] LOG:  arrêt en cours
103:M 24 Nov 2022 15:11:00.546 # Arrêt demandé par l'utilisateur...
103:M 24 Nov 2022 15:11:00.546 * Sauvegarde du dernier instantané RDB avant la fermeture.
103:M 24 Nov 2022 15:11:00.597 * Base de données sauvegardée sur le disque
103:M 24 Nov 2022 15:11:00.597 # Redis est maintenant prêt à se fermer, au revoir...
2022-11-24 15:11:00.680 UTC [42] LOG:  le système de base de données est arrêté


ÉCHEC
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' a échoué avec le code de retour #<Process::Status: pid 1415 exit 1>
Emplacement de l'échec : /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
Exécution échouée avec les paramètres {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
Amorçage échoué avec le code de sortie 1
** ÉCHEC DE L'AMORÇAGE ** veuillez faire défiler vers le haut et rechercher les messages d'erreur précédents, il peut y en avoir plus d'un.
./discourse-doctor peut aider à diagnostiquer le problème.
abfc5da15ae62310ad82ccb495992f76ef7b9a87b7bb024ca4bf327ea993bc54

J’ai ensuite essayé :

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

Et la sortie est maintenant :

sudo ./launcher rebuild app
ATTENTION : La version Docker 17.05.0-ce est obsolète, il est recommandé de passer à la version 17.06.2 ou supérieure.
Architecture x86_64 détectée.
ATTENTION : Le fichier containers/app.yml est lisible par tout le monde. Vous pouvez sécuriser ce fichier en exécutant : chmod o-rwx containers/app.yml
Vérification que le lanceur est à jour
Récupération de origin
Le lanceur est à jour
Arrêt de l'ancien conteneur
+ /usr/bin/docker stop -t 60 app
app
2.0.20220818-0047 : Récupération depuis discourse/base
Digeste : sha256:7734701087766821ffb2ddcef423754798bd345c2ac0d550131c6e6905c268e8
Statut : L'image est à jour pour 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 -- : Lecture depuis stdin
I, [2022-11-24T17:05:57.389797 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2022-11-24T17:05:57.422186 #1]  INFO -- : Génération des paramètres régionaux (cela peut prendre un certain temps)...
Génération terminée.

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 déjà en cours d'exécution, arrêtez le conteneur ; exit 1
2022/11/24 17:05:57 socat[19] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36) : Aucun fichier ou répertoire de ce type
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 -- : Fichier > /etc/service/postgres/run  chmod: +x  chown: 
I, [2022-11-24T17:05:57.456198 #1]  INFO -- : Fichier > /etc/service/postgres/log/run  chmod: +x  chown: 
I, [2022-11-24T17:05:57.460141 #1]  INFO -- : Fichier > /etc/runit/3.d/99-postgres  chmod: +x  chown: 
I, [2022-11-24T17:05:57.464080 #1]  INFO -- : Fichier > /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 -- : Remplacement de data_directory = '/var/lib/postgresql/13/main' par data_directory = '/shared/postgres_data' dans /etc/postgresql/13/main/postgresql.conf
I, [2022-11-24T17:05:57.559138 #1]  INFO -- : Remplacement de (?-mix:#?listen_addresses *=.*) par listen_addresses = '*' dans /etc/postgresql/13/main/postgresql.conf
I, [2022-11-24T17:05:57.559350 #1]  INFO -- : Remplacement de (?-mix:#?synchronous_commit *=.*) par synchronous_commit = $db_synchronous_commit dans /etc/postgresql/13/main/postgresql.conf
I, [2022-11-24T17:05:57.559550 #1]  INFO -- : Remplacement de (?-mix:#?shared_buffers *=.*) par shared_buffers = $db_shared_buffers dans /etc/postgresql/13/main/postgresql.conf
I, [2022-11-24T17:05:57.559748 #1]  INFO -- : Remplacement de (?-mix:#?work_mem *=.*) par work_mem = $db_work_mem dans /etc/postgresql/13/main/postgresql.conf
I, [2022-11-24T17:05:57.559945 #1]  INFO -- : Remplacement de (?-mix:#?default_text_search_config *=.*) par default_text_search_config = '$db_default_text_search_config' dans /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 -- : Remplacement de (?-mix:#?checkpoint_segments *=.*) par checkpoint_segments = $db_checkpoint_segments dans /etc/postgresql/13/main/postgresql.conf
I, [2022-11-24T17:05:57.563086 #1]  INFO -- : Remplacement de (?-mix:#?logging_collector *=.*) par logging_collector = $db_logging_collector dans /etc/postgresql/13/main/postgresql.conf
I, [2022-11-24T17:05:57.563295 #1]  INFO -- : Remplacement de (?-mix:#?log_min_duration_statement *=.*) par log_min_duration_statement = $db_log_min_duration_statement dans /etc/postgresql/13/main/postgresql.conf
I, [2022-11-24T17:05:57.563506 #1]  INFO -- : Remplacement de (?-mix:^#local +replication +postgres +peer$) par local replication postgres peer dans /etc/postgresql/13/main/pg_hba.conf
I, [2022-11-24T17:05:57.563702 #1]  INFO -- : Remplacement de (?-mix:^host.*all.*all.*127.*$) par host all all 0.0.0.0/0 md5 dans /etc/postgresql/13/main/pg_hba.conf
I, [2022-11-24T17:05:57.563874 #1]  INFO -- : Remplacement de (?-mix:^host.*all.*all.*::1\/128.*$) par host all all ::/0 md5 dans /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:  le fichier de clé privée « /etc/ssl/private/ssl-cert-snakeoil.key » doit être détenu par l'utilisateur de la base de données ou root
2022-11-24 17:05:57.591 UTC [42] LOG:  le système de base de données est arrêté
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: erreur : impossible de se connecter à la base de données template1 : connexion au serveur sur le socket « /var/run/postgresql/.s.PGSQL.5432 » échouée : Aucun fichier ou répertoire de ce type
	Le serveur est-il en cours d'exécution localement et accepte-t-il les connexions sur ce 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: erreur : connexion au serveur sur le socket « /var/run/postgresql/.s.PGSQL.5432 » échouée : Aucun fichier ou répertoire de ce type
	Le serveur est-il en cours d'exécution localement et accepte-t-il les connexions sur ce 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: erreur : connexion au serveur sur le socket « /var/run/postgresql/.s.PGSQL.5432 » échouée : Aucun fichier ou répertoire de ce type
	Le serveur est-il en cours d'exécution localement et accepte-t-il les connexions sur ce socket ?
I, [2022-11-24T17:06:02.688248 #1]  INFO -- : 
I, [2022-11-24T17:06:02.688412 #1]  INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
psql: erreur : connexion au serveur sur le socket « /var/run/postgresql/.s.PGSQL.5432 » échouée : Aucun fichier ou répertoire de ce type
	Le serveur est-il en cours d'exécution localement et accepte-t-il les connexions sur ce socket ?
I, [2022-11-24T17:06:02.725728 #1]  INFO -- : 
I, [2022-11-24T17:06:02.725969 #1]  INFO -- : Arrêt des processus asynchrones


ÉCHEC
--------------------
Pups::ExecError: su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' a échoué avec le code de retour #<Process::Status: pid 54 exit 2>
Emplacement de l'échec : /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
Exécution échouée avec les paramètres "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
Amorçage échoué avec le code de sortie 2
** ÉCHEC DE L'AMORÇAGE ** veuillez faire défiler vers le haut et rechercher les messages d'erreur précédents, il peut y en avoir plus d'un.
./discourse-doctor peut aider à diagnostiquer le problème.
8c252b2f3146df27193b8a6966b36a75230460f92397cd206aa5540082090660

Quelqu’un peut-il m’aider ?

Bonjour et bienvenue @Nanovitruvius :slight_smile:

Il y a eu quelques rapports d’échecs de mise à niveau au cours de la dernière heure environ, et quelques correctifs ont maintenant été mis en place pour ceux qui semblent avoir fonctionné pour la plupart. :+1:

L’erreur \"alter schema public owner to discourse;\" dans votre deuxième bloc de code est également apparue l’autre jour, et le conseil était :

Il me semble que c’est la partie importante - la propriété d’un fichier est incorrecte, d’une manière ou d’une autre :

Dans mon cas (une installation fonctionnelle qui n’a pas été mise à jour depuis une semaine environ), ce fichier appartient à 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

Cette version de Docker a plus de cinq ans. Je vous recommande fortement de la mettre à niveau pendant que vous vous occupez des autres points soulevés ci-dessus.

Merci beaucoup pour vos réponses rapides !
@JammyDodger - J’ai augmenté la ligne pertinente à 10 s, mais j’ai toujours le même problème qu’avant (il renvoie toujours le Fatal SSL certificate).
@Ed_S J’ai vérifié la propriété du fichier comme vous l’avez suggéré, mais il semble identique au vôtre (sauf les dates) :

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

Cependant, j’ai dû utiliser sudo pour que la commande fonctionne, donc peut-être que je dois accorder plus de privilèges lors de l’exécution de la mise à jour ? Je l’exécute en tant que sudo ./launcher rebuild app, donc je ne suis pas sûr de ce que je pourrais faire d’autre ici.

Stephen - Je vais mettre à jour docker maintenant et tout réexécuter, puis je ferai un retour ici.

Merci pour toute votre aide !

J’ai maintenant mis à jour Docker vers la dernière version, mais l’erreur semble toujours la même. Lors de la mise à jour, j’ai rencontré des erreurs de permissions (cela semble pourtant fonctionner correctement) :

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  docker-ce-rootless-extras docker-scan-plugin pigz slirp4netns
Suggested packages:
  aufs-tools cgroupfs-mount | cgroup-lite
The following NEW packages will be installed:
  containerd.io docker-ce docker-ce-cli docker-ce-rootless-extras docker-compose-plugin docker-scan-plugin pigz slirp4netns
0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded.
Need to get 111 MB of archives.
After this Operation, 428 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 https://download.docker.com/linux/ubuntu focal/stable amd64 containerd.io amd64 1.6.10-1 [27,7 MB]
Get:2 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-ce-cli amd64 5:20.10.21~3-0~ubuntu-focal [41,5 MB]
Get:3 http://archive.ubuntu.com/ubuntu focal/universe amd64 pigz amd64 2.4-1 [57,4 kB]
Get:4 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-ce amd64 5:20.10.21~3-0~ubuntu-focal [20,5 MB]
Get:5 http://archive.ubuntu.com/ubuntu focal/universe amd64 slirp4netns amd64 0.4.3-1 [74,3 kB]
Get: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 kB]
Get:7 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-compose-plugin amd64 2.12.2~ubuntu-focal [9 567 kB]
Get:8 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-scan-plugin amd64 0.21.0~ubuntu-focal [3 622 kB]
Fetched 111 MB in 2s (73,6 MB/s)                
Selecting previously unselected package pigz.
(Reading database ... 308915 files and directories currently installed.)
Preparing to unpack .../0-pigz_2.4-1_amd64.deb ...
Unpacking pigz (2.4-1) ...
Selecting previously unselected package containerd.io.
Preparing to unpack .../1-containerd.io_1.6.10-1_amd64.deb ...
Unpacking containerd.io (1.6.10-1) ...
Selecting previously unselected package docker-ce-cli.
Preparing to unpack .../2-docker-ce-cli_5%3a20.10.21~3-0~ubuntu-focal_amd64.deb ...
Unpacking docker-ce-cli (5:20.10.21~3-0~ubuntu-focal) ...
Selecting previously unselected package docker-ce.
Preparing to unpack .../3-docker-ce_5%3a20.10.21~3-0~ubuntu-focal_amd64.deb ...
Unpacking docker-ce (5:20.10.21~3-0~ubuntu-focal) ...
Selecting previously unselected package docker-ce-rootless-extras.
Preparing to unpack .../4-docker-ce-rootless-extras_5%3a20.10.21~3-0~ubuntu-focal_amd64.deb ...
Unpacking docker-ce-rootless-extras (5:20.10.21~3-0~ubuntu-focal) ...
Selecting previously unselected package docker-compose-plugin.
Preparing to unpack .../5-docker-compose-plugin_2.12.2~ubuntu-focal_amd64.deb ...
Unpacking docker-compose-plugin (2.12.2~ubuntu-focal) ...
Selecting previously unselected package docker-scan-plugin.
Preparing to unpack .../6-docker-scan-plugin_0.21.0~ubuntu-focal_amd64.deb ...
Unpacking docker-scan-plugin (0.21.0~ubuntu-focal) ...
Selecting previously unselected package slirp4netns.
Preparing to unpack .../7-slirp4netns_0.4.3-1_amd64.deb ...
Unpacking slirp4netns (0.4.3-1) ...
Setting up slirp4netns (0.4.3-1) ...
Setting up docker-scan-plugin (0.21.0~ubuntu-focal) ...
Setting up containerd.io (1.6.10-1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service.
Setting up docker-compose-plugin (2.12.2~ubuntu-focal) ...
Setting up docker-ce-cli (5:20.10.21~3-0~ubuntu-focal) ...
Setting up pigz (2.4-1) ...
Setting up docker-ce-rootless-extras (5:20.10.21~3-0~ubuntu-focal) ...
Setting up docker-ce (5:20.10.21~3-0~ubuntu-focal) ...
Processing triggers for man-db (2.9.1-1) ...
/usr/bin/mandb: can't chmod /var/cache/man/hu/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/hu/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/hu/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/fi/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/fi/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/fi/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/ja/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/ja/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/ja/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/ko/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/ko/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/ko/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/fr.UTF-8/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/fr.UTF-8/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/fr.UTF-8/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/tr/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/tr/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/tr/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/pt_BR/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/pt_BR/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/pt_BR/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/id/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/id/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/id/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/it/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/it/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/it/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/de/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/de/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/de/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/da/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/da/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/da/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/fr.ISO8859-1/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/fr.ISO8859-1/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/fr.ISO8859-1/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/pl/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/pl/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/pl/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/zh_TW/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/zh_TW/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/zh_TW/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/gl/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/gl/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/gl/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/sv/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/sv/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/sv/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/nl/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/nl/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/nl/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/sl/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/sl/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/sl/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/pt/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/pt/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/pt/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/ru/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/ru/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/ru/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/sr/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/sr/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/sr/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/es/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/es/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/es/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/cs/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/cs/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/cs/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/fr/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/fr/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/fr/50779: Permission denied
/usr/bin/mandb: can't chmod /var/cache/man/zh_CN/CACHEDIR.TAG: Operation not permitted
/usr/bin/mandb: can't remove /var/cache/man/zh_CN/CACHEDIR.TAG: Permission denied
/usr/bin/mandb: fopen /var/cache/man/zh_CN/50779: Permission denied
Processing triggers for systemd (245.4-4ubuntu3.19) 

C’est étrange que j’obtienne des refus de permission lorsque j’utilise sudo ?

La sortie de la reconstruction de l’application est maintenant :


nano@nano:/var/discourse$ 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-25T09:00:51.131964 #1]  INFO -- : Reading from stdin
I, [2022-11-25T09:00:51.135935 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2022-11-25T09:00:51.171482 #1]  INFO -- : Generating locales (this might take a while)...
Generation complete.

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): No such file or directory
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 -- : File > /etc/service/postgres/run  chmod: +x  chown: 
I, [2022-11-25T09:00:51.266078 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x  chown: 
I, [2022-11-25T09:00:51.280710 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  chown: 
I, [2022-11-25T09:00:51.295423 #1]  INFO -- : File > /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 -- : Replacing data_directory = '/var/lib/postgresql/13/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T09:00:51.427479 #1]  INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T09:00:51.427699 #1]  INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T09:00:51.427898 #1]  INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T09:00:51.428093 #1]  INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T09:00:51.428287 #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-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 -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T09:00:51.432668 #1]  INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/13/main/postgresql.conf
I, [2022-11-25T09:00:51.432878 #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-25T09:00:51.433089 #1]  INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres  peer in /etc/postgresql/13/main/pg_hba.conf
I, [2022-11-25T09:00:51.433281 #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-25T09:00:51.433452 #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-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:  private key file "/etc/ssl/private/ssl-cert-snakeoil.key" must be owned by the database user or root
2022-11-25 09:00:51.521 UTC [41] LOG:  database system is shut down
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: 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-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: 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-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: 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-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: 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-25T09:01:01.631113 #1]  INFO -- : 
I, [2022-11-25T09:01:01.631506 #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 53 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.
d3281b165492d5420df227f46735618325f4b80a1c3a11643dcef514ec343406
nano@nano:/var/discourse$ 

J’ai maintenant essayé avec sleep 10 et sleep 60, mais les deux donnent le même résultat (sauf la ligne INFO – : > sleep 60).

Il semble que vous vérifiiez le fichier sur l’hôte : vous devez entrer dans l’application et le vérifier à l’intérieur.

Mea culpa, et vous avez raison, les permissions semblent tout à fait incorrectes ici :

root@nano-app:/var/www/discourse# sudo ls -l /etc/ssl/private/ssl-cert-snakeoil.key
sudo: /etc/sudo.conf est possédé par uid 1000, devrait être 0
sudo: /etc/sudo.conf est possédé par uid 1000, devrait être 0
sudo: erreur dans /etc/sudo.conf, ligne 0 lors du chargement du plugin "sudoers_policy"
sudo: /usr/lib/sudo/sudoers.so doit être possédé par uid 0
sudo: erreur fatale, impossible de charger les plugins
root@nano-app:/var/www/discourse# 

Que suggérez-vous pour corriger cela ?

Cela ressemble à une chose différente : vous êtes déjà root, vous n’avez donc pas besoin de sudo dans ce cas, ces erreurs ne devraient donc pas vous déranger.

Quel type d’installation essayez-vous de mettre à niveau : s’agit-il d’une installation standard ?

Installation standard, je ne pense pas que nous ayons de plugins (cela fait longtemps que je n’ai pas installé), c’est sur une machine locale, et assez petit (environ 500 Mo de sauvegarde)

J’ai vérifié à nouveau sans sudo et le propriétaire est 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

ne peut pas exécuter ./launcher enter app sans sudo cependant

Il pourrait être intéressant de savoir comment ce fichier a obtenu la mauvaise propriété, mais si vous entrez dans l’application, vous devriez pouvoir

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

et ensuite une reconstruction devrait bien se passer.

Merci Ed !

J’ai modifié les permissions maintenant :

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

Mais la reconstruction échoue toujours avec :

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.

Quant à la façon dont les permissions de snakeoil.key ont changé, je l’ignore. Il y a eu des manipulations dans le dossier var/discourse pour changer les permissions de l’utilisateur vers root, mais je n’étais pas du tout près de la structure du dossier /etc.

J’ai vérifié l’état de Docker et obtenu quelques avertissements ici :

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"

Hmm, désolé, plus d’idées pour le moment.

En dernier recours, on voit des conseils pour faire une sauvegarde, démarrer une nouvelle installation et restaurer la sauvegarde. Je ne l’ai jamais fait moi-même !

Est-ce que ce pourrait être l’un des dossiers englobants avec des permissions incorrectes ?
pour l’arborescence de fichiers, j’obtiens :

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

Je ne pense pas que ces autorisations soient erronées. Mais c’est une date très ancienne. Je m’attendais à ce que ces éléments arrivent dans les conteneurs expédiés, il semble donc possible que vous soyez très en retard dans les mises à jour, d’une manière ou d’une autre.

Voici ce que je vois (de l’extérieur du conteneur)

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

Ce qui suit pourrait ne pas être utile pour ce problème particulier (ou peut-être que si ?), mais peut-être que quelqu’un d’autre qui le lira pourra en bénéficier.

J’avais également des difficultés à mettre à jour mon site hier soir, avec essentiellement le même message d’erreur :

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

J’ai isolé la cause à deux plugins que j’ai écrits. J’utilisais le plugin Discourse Signature comme code de base pour apprendre à écrire des plugins à l’époque. Parce que je le suivais comme exemple, mes deux plugins avaient également ce problème qui bloquait la mise à jour :

Commenter les lignes de plugin dans mon fichier yml a fonctionné. Supprimer la même ligne sur les dépôts de plugins a également résolu le problème et m’a permis de mettre à jour.

Malheureusement, ce n’est pas vraiment le même message d’erreur : c’est le résumé qu’une commande a échoué, mais la raison pour laquelle la commande a échoué se trouve plus tôt dans le fichier journal, potentiellement bien plus tôt. Vous remarquerez qu’il est courant ici de demander une plus grande partie du fichier journal - il est courant de coller trop peu pour pouvoir diagnostiquer quoi que ce soit.

Oui, vous avez raison, c’est juste. Ma formulation n’est pas idéale. Les lignes de journal pertinentes se trouvaient effectivement au-dessus de l’erreur finale affichée, mais le point d’arrêt est le même.

Dans mon cas, le point de défaillance s’est produit lors du traitement des dépôts de plugins.