Bonjour, c’est mon premier sujet ! Je m’appelle Nelly Eggsy et je construis un site web en utilisant Ghost et Discourse.
Je me contente généralement de lire les forums et de parcourir les sujets dans l’ombre. Si je suis bloquée, je cherche une réponse dans les forums, ce qui fonctionne habituellement. Cependant, je suis actuellement bloquée et j’ai besoin d’aide.
Après avoir mis à jour Discourse via l’interface d’administration, j’ai rencontré le message suivant :
Vous exécutez une ancienne version de l’image Discourse.
Les mises à jour via l’interface web sont désactivées tant que vous n’avez pas exécuté la dernière image.
Pour ce faire, connectez-vous à votre serveur via SSH et exécutez :
cd /var/discourse
git pull
./launcher rebuild app
J’ai suivi le guide sur la façon de mettre à jour Discourse et l’image Docker vers la dernière version en utilisant des commandes console. Cependant, je n’ai pas réussi la mise à jour en raison d’une erreur.
Voici le message d’erreur que j’obtiens lorsque j’exécute la commande ./launcher rebuild app.
> ÉCHEC
> --------------------
> Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' a échoué avec le retour #<Process::Status: pid 671 exit 1>
> Emplacement de l'échec : /pups/lib/pups/exec_command.rb:112: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'"]}
> 9c3a1b4a72818216aaafa5de742f7d1a325aa61497ea49f5b4f1660c6e503fd0
> ** ÉCHEC DU BOOTSTRAP ** veuillez faire défiler vers le haut et rechercher les messages d'erreur antérieurs, il peut y en avoir plus d'un.
> ./discourse-doctor peut aider à diagnostiquer le problème.
Mon droplet Digital Ocean dispose de 2 Go de mémoire / 50 Go de disque + 50 Go / SFO2 - Discourse sur Ubuntu 20.04.
Merci d’avoir pris le temps de lire mon message ! J’ai hâte de lire votre réponse.
Voici ce que je vois juste au-dessus de l’erreur « failed » :
rake aborted!
NameError: variable locale ou méthode `name' non définie pour main:Object
/var/www/discourse/lib/tasks/assets.rake:251:in `rescue in block (2 levels) in <main>'
/var/www/discourse/lib/tasks/assets.rake:240:in `block (2 levels) in <main>'
Caused by:
OpenURI::HTTPError: 401 Error: Invalid license key
/var/www/discourse/lib/file_helper.rb:63:in `block in download'
/var/www/discourse/lib/final_destination.rb:422:in `block (3 levels) in safe_get'
/var/www/discourse/lib/final_destination.rb:421:in `catch'
/var/www/discourse/lib/final_destination.rb:421:in `block (2 levels) in safe_get'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.3.2/lib/patches/net_patches.rb:19:in `block in request_with_mini_profiler'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.3.2/lib/mini_profiler/profiling_methods.rb:46:in `step'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.3.2/lib/patches/net_patches.rb:18:in `request_with_mini_profiler'
/var/www/discourse/lib/final_destination.rb:393:in `block in safe_get'
/var/www/discourse/lib/final_destination.rb:437:in `block in safe_session'
/var/www/discourse/lib/final_destination.rb:434:in `safe_session'
/var/www/discourse/lib/final_destination.rb:385:in `safe_get'
/var/www/discourse/lib/final_destination.rb:134:in `get'
/var/www/discourse/lib/file_helper.rb:55:in `download'
/var/www/discourse/lib/discourse_ip_info.rb:39:in `mmdb_download'
/var/www/discourse/lib/tasks/assets.rake:242:in `block (3 levels) in <main>'
/var/www/discourse/lib/tasks/assets.rake:241:in `each'
/var/www/discourse/lib/tasks/assets.rake:241:in `block (2 levels) in <main>'
Tasks: TOP => assets:precompile
(Voir la trace complète en exécutant la tâche avec --trace)
I, [2021-05-02T20:17:42.823237 #1] INFO -- : Téléchargement de MaxMindDB...
Compression du Javascript et génération des cartes de sources
Voici la sortie. Je l’ai beaucoup réduite pour que le forum me permette de la publier.
2021-05-03 00:32:20.635 UTC [63] postgres@postgres ERROR: la base de données "discourse" existe déjà
2021-05-03 00:32:20.635 UTC [63] postgres@postgres STATEMENT: CREATE DATABASE discourse;
createdb: erreur : échec de la création de la base de données : ERROR: la base de données "discourse" existe déjà
I, [2021-05-03T00:32:20.639714 #1] INFO -- :
I, [2021-05-03T00:32:20.640335 #1] INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
2021-05-03 00:32:20.760 UTC [74] postgres@discourse ERROR: le rôle "discourse" existe déjà
2021-05-03 00:32:20.760 UTC [74] postgres@discourse STATEMENT: create user discourse;
ERROR: le rôle "discourse" existe déjà
I, [2021-05-03T00:32:21.634456 #1] INFO -- : Fichier > /etc/service/redis/run chmod: +x chown:
I, [2021-05-03T00:32:21.640838 #1] INFO -- : Fichier > /etc/service/redis/log/run chmod: +x chown:
I, [2021-05-03T00:32:21.646998 #1] INFO -- : Fichier > /etc/runit/3.d/10-redis chmod: +x chown:
I, [2021-05-03T00:32:21.648588 #1] INFO -- : Remplacement de daemonize yes par dans /etc/redis/redis.conf
I, [2021-05-03T00:32:21.650175 #1] INFO -- : Remplacement de (?-mix:^pidfile.*$) par dans /etc/redis/redis.conf
I, [2021-05-03T00:32:21.651303 #1] INFO -- : > install -d -m 0755 -o redis -g redis /shared/redis_data
I, [2021-05-03T00:32:21.656597 #1] INFO -- :
I, [2021-05-03T00:32:21.657900 #1] INFO -- : Remplacement de (?-mix:^logfile.*$) par logfile "" dans /etc/redis/redis.conf
I, [2021-05-03T00:32:21.659157 #1] INFO -- : Remplacement de (?-mix:^bind .*$) par dans /etc/redis/redis.conf
I, [2021-05-03T00:32:21.660353 #1] INFO -- : Remplacement de (?-mix:^dir .*$) par dir /shared/redis_data dans /etc/redis/redis.conf
I, [2021-05-03T00:32:21.661652 #1] INFO -- : Remplacement de (?-mix:^protected-mode yes) par protected-mode no dans /etc/redis/redis.conf
I, [2021-05-03T00:32:21.662825 #1] INFO -- : Remplacement de # io-threads 4 par io-threads $redis_io_threads dans /etc/redis/redis.conf
I, [2021-05-03T00:32:21.663908 #1] INFO -- : > echo redis installé
I, [2021-05-03T00:32:21.668192 #1] INFO -- : redis installé
I, [2021-05-03T00:32:21.669144 #1] INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2021-05-03T00:32:21.679111 #1] INFO -- : logfile ""
I, [2021-05-03T00:32:21.680077 #1] INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2021-05-03T00:32:21.683045 #1] INFO -- : > sleep 10
167:C 03 May 2021 00:32:21.698 # oO0OoO0OoO0Oo Redis démarre oO0OoO0OoO0Oo
167:C 03 May 2021 00:32:21.698 # Version Redis=6.2.1, bits=64, commit=00000000, modifié=0, pid=167, vient de démarrer
167:C 03 May 2021 00:32:21.699 # Configuration chargée
167:M 03 May 2021 00:32:21.700 * horloge monotone : POSIX clock_gettime
167:M 03 May 2021 00:32:21.702 * Mode d'exécution=standalone, port=6379.
167:M 03 May 2021 00:32:21.702 # Serveur initialisé
167:M 03 May 2021 00:32:21.703 # AVERTISSEMENT : overcommit_memory est défini à 0 ! La sauvegarde en arrière-plan peut échouer en cas de faible mémoire. Pour résoudre ce problème, ajoutez 'vm.overcommit_memory = 1' dans /etc/sysctl.conf, puis redémarrez ou exécutez la commande 'sysctl vm.overcommit_memory=1' pour que cela prenne effet.
I, [2021-05-03T00:32:41.096190 #1] INFO -- : > cd /var/www/discourse && bash -c "touch -a /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
terser '/var/www/discourse/public/assets/_vendor-892d5a1f7dfb58e3f80950989c67133fd6062344153d17e67db8ba3d126c7a1a.js' -m -c -o '/var/www/discourse/public/assets/vendor-892d5a1f7dfb58e3f80950989c67133fd6062344153d17e67db8ba3d126c7a1a.js' --source-map "base='/var/www/discourse/public/assets',root='/assets',url='/assets/vendor-892d5a1f7dfb58e3f80950989c67133fd6062344153d17e67db8ba3d126c7a1a.js.map'"
****************************************************************************************************
#<Thread:0x000055a7feb17780 /var/www/discourse/lib/tasks/assets.rake:239 run> terminé avec une exception (report_on_exception est true) :
/var/www/discourse/lib/tasks/assets.rake:251:in `rescue in block (2 levels) in <main>' : variable ou méthode locale non définie `name' pour main:Object (NameError)
from /var/www/discourse/lib/tasks/assets.rake:240:in `block (2 levels) in <main>'
/var/www/discourse/lib/file_helper.rb:63:in `block in download' : 401 Erreur : clé de licence invalide (OpenURI::HTTPError)
Merci ! Cela semble fonctionner, en quelque sorte. Lorsque je visite la page d’accueil du forum, je suis redirigé vers la page « Félicitations, vous avez installé Discourse ! ». Voici mes questions :
Dois-je réinstaller le forum ? Mon contenu existant sera-t-il conservé ou tout a-t-il été supprimé ?
Cela ressemble à une suppression totale, mais il est probable que tout soit toujours là. S’agissait-il de votre première mise à jour depuis un moment ? Votre PostgreSQL a-t-il été mis à jour ? Ma meilleure hypothèse est que quelque chose s’est mal passé lors de la mise à jour de PostgreSQL et que vous devez renommer postgres_old et recommencer. Vous trouverez des détails dans Mise à jour vers PostgreSQL 13.
Jay, je me souviens (à l’instant) que j’avais tenté de déplacer les fichiers d’upload et les sauvegardes vers le stockage par blocs DigitalOcean. Il y a quelques instants, j’ai réessayé et j’ai reçu le message d’erreur « Oops » en visitant la page d’accueil :
Oops
Le logiciel qui alimente ce forum de discussion a rencontré un problème inattendu. Nous nous excusons pour le désagrément.
Des informations détaillées sur l’erreur ont été consignées dans les journaux et une notification automatique a été générée. Nous allons l’examiner.
Aucune autre action n’est nécessaire. Cependant, si le problème persiste, vous pouvez fournir des détails supplémentaires, y compris les étapes pour reproduire l’erreur, en publiant un sujet dans la catégorie « Retour d’information » du site.
## Le conteneur Docker est sans état ; toutes les données sont stockées dans /shared
volumes:
- volume:
host: /mnt/discourse-sfo2-01/shared/standalone
guest: /shared
- volume:
host: /mnt/discourse-sfo2-01/shared/standalone/log/var-log
guest: /var/log
- volume:
host: /var/postgres_data_discourse
guest: /shared/postgres_data
Toutes les commandes ont été exécutées avec ./launcher rebuild app sans incident.
Je suis désolé à tous. J’avais oublié que j’avais fait cela. Je suis certain que c’est probablement la cause des problèmes.