La reconstruction échoue avec des erreurs yarn

Je reçois une erreur lors de la mise à niveau de mon instance avec ./launcher rebuild app sur Ubuntu 22.04. D’après ce que je peux comprendre, les problèmes commencent ici :

error /var/www/discourse/app/assets/javascripts/node_modules/discourse: Command failed.
Exit code: 1
Command: yarn --silent --cwd .. patch-package
Arguments: 
Directory: /var/www/discourse/app/assets/javascripts/node_modules/discourse
Output:
error Command "patch-package" not found.
error Command failed with exit code 1.

Il y a quelques avertissements « _ has unmet peer dependency » ci-dessus, mais c’est la première erreur (à part « _ already exists » lors de la configuration de la base de données, mais je comprends que c’est un comportement attendu).

Malheureusement, la mise à niveau où cela a commencé s’est produite la veille de mon départ en voyage en famille, j’étais donc un peu pressé et je n’ai pas eu le temps de dépanner sur le moment. Mais cela se produit de manière constante. L’hôte est entièrement mis à jour et je ne me souviens pas avoir fait quoi que ce soit de particulièrement unique avec la configuration. J’ai mis /var/discourse sur un volume Digital Ocean séparé il y a environ 3 mois (ce que je sais être déconseillé™ pour des raisons de performance, mais pour un forum avec des centaines d’utilisateurs, j’ai pensé que cela valait le compromis), mais cela a fonctionné correctement après ce changement, autant que je puisse en juger.

1 « J'aime »

Je pense que ce ne sont que des avertissements.

Si le site ne redémarre pas, vous pouvez essayer

./launcher start app

J’ai exécuté ./launcher start app et j’obtiens maintenant une erreur HTTP 502. D’après ./launcher logs app, je vois :

[Wed 19 Jul 2023 10:18:34 PM UTC] Run reload cmd: sv reload nginx
fail: nginx: runsv not running
[Wed 19 Jul 2023 10:18:34 PM UTC] Reload error for :
Started runsvdir, PID is 530
ok: run: redis: (pid 542) 0s
ok: run: postgres: (pid 543) 0s
supervisor pid: 538 unicorn pid: 569
Could not find rtlcss-0.2.1, mini_racer-0.8.0, puma-6.3.0, msgpack-1.7.1, libv8-node-18.16.0.0-x86_64-linux in locally installed gems
Run `bundle install` to install missing gems.
config/unicorn_launcher: line 71: kill: (569) - No such process
config/unicorn_launcher: line 15: kill: (569) - No such process
(538) exiting

Cela se répète assez souvent.

Peut-être exécuter bundle install ?

Pour ce faire, je dois entrer dans le conteneur. Je l’ai fait, et lorsque je démarre le conteneur par la suite, l’interface web affiche

Oops

Le logiciel qui alimente ce forum de discussion a rencontré un problème inattendu. Nous nous excusons pour la gêne occasion

Il y a une autre erreur quelque part. Inclure le journal entier.

Avez-vous des plugins non standard ?

Pas à ma connaissance (à moins que @mattdm n’en ait glissé quelques-uns sans que je le voie :smile: ). discourse-doctor dit également “Aucun plugin non officiel détecté”.

1 « J'aime »

Je voulais dire le journal complet d’une reconstruction.

Mes excuses. Voici le résultat d’une reconstruction. Est-ce que c’est ce que vous cherchiez ?

La deuxième ligne raconte toute l’histoire

fatal: not a git repository (or any parent up to mount point /var)

Votre répertoire /var/discourse n’est pas un dépôt git, ce qui empêche la mise à jour automatique du lanceur et des outils que nous utilisons pour amorcer Discourse, ce qui signifie que vous êtes bloqué dans une ancienne image Docker.
Vous devez annuler les modifications que vous avez apportées pour casser cela.

3 « J'aime »

Lorsque vous avez copié les fichiers sur votre volume, vous n’avez pas copié .git, vous devrez donc le cloner et y copier le reste des éléments.

Vous devriez probablement faire en sorte que votre volume contienne uniquement les téléchargements, ce qui, je suppose, représente la majeure partie de l’espace, et vous pourrez alors avoir uniquement les téléchargements et les sauvegardes sur le volume.

1 « J'aime »

Oh mon Dieu. Je parie que je peux deviner exactement ce que j’ai fait et cela implique le fait que * ne correspond pas à .git dans une commande rsync. Ce ne serait pas la première fois que j’utilise rsync pour me compliquer la vie. Merci de l’avoir remarqué !

Y a-t-il une raison technique pour que la reconstruction ne puisse pas s’arrêter à ce stade ? Cela aurait facilité le dépannage (bien que commencer par le haut au lieu du bas l’aurait également fait).

2 « J'aime »

Heureusement, j’ai encore l’archive tar pré-migration car je n’ai pas perdu toutes mes compétences d’administrateur système au fil des ans. :smile:

Ceci est sur le plus petit droplet Digital Ocean, donc c’est principalement le système qui prend de la place. Les téléchargements et les sauvegardes ensemble représentent environ 100 Mo. Je pense que ce que je finirai probablement par faire, si je fais un changement, c’est de passer à un droplet plus grand qui a plus d’espace disque.

Merci pour votre aide, j’apprécie vraiment !

2 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.