Mise à niveau lorsque l'espace semble faible : arrêter l'application, puis nettoyer, puis reconstruire l'application ?

Salut tout le monde. Ça ressemble à une question stupide, mais je vais la poser quand même.

J’étais coincé dans cette boucle familière :

  1. La mise à niveau a échoué.
  2. J’ai essayé ./launcher rebuild app, mais il n’y avait pas assez d’espace disque. (Moins de 5 Go libres.)
  3. J’ai exécuté ./launcher cleanup, ce qui a semblé libérer de l’espace disque. (Plus de 5 Go libres.)
  4. RETOUR AU POINT 2.

Comme je ne savais pas encore quelles opérations étaient sûres (c’est-à-dire qu’elles ne détruiraient pas les données de mon site), j’ai tâtonné nerveusement, en espérant ne pas avoir besoin de restaurer à partir d’une sauvegarde. J’ai fini par faire ceci et cela a semblé fonctionner pour moi.

  1. ./launcher stop app
  2. ./launcher cleanup, qui a nettoyé beaucoup plus d’espace qu’auparavant, ce qui m’a immédiatement rendu nerveux.
  3. git pull
  4. ./launcher rebuild app

Non seulement cela a fonctionné, mais le site a redémarré avec les données intactes et avec environ 2 Go d’espace libre en plus qu’auparavant.

Maintenant, je ne suis pas sûr si ce que j’ai fait était brillant, évident, ou risqué et que cela a simplement fonctionné. J’aimerais comprendre un peu mieux pourquoi j’ai obtenu ces résultats et si c’était une façon sensée de mettre à niveau.

Merci beaucoup.

1 « J'aime »

docker crée un tas de fichiers lorsqu’il crée un conteneur (y compris les conteneurs qu’il crée) lorsque vous créez un nouveau conteneur, vous avez toujours les anciens conteneurs (et aussi les images disque). C’est ce qui est supprimé lorsque vous effectuez un nettoyage.

Il est un peu plus sûr d’exécuter la commande de nettoyage pendant que discourse est en cours d’exécution, car la commande de nettoyage ne supprimera pas un conteneur en cours d’exécution. Si quelque chose se passe mal avec la reconstruction, vous pouvez toujours redémarrer l’ancien conteneur s’il existe.

Donc, je supprimerais l’étape (1) ci-dessus et l’étape (3) est inutile car ./launcher effectue un pull (dans le passé, ce n’était pas le cas).

Pourrait être erroné, mais cela ne résulterait-il pas des mêmes deux étapes que dans le premier bloc qui ne fonctionnait pas ? (2-4) :

Par ailleurs, cela ressemble un peu plus à ce sujet :

2 « J'aime »

Oups. Oui. Je n’avais pas relu ça.

Donc oui, si votre espace disque est si limité que vous n’avez pas de place pour deux images, alors vous devez toutes les détruire avant d’en construire une nouvelle, ce qui vous met dans une mauvaise situation si pour une raison quelconque vous ne pouvez pas construire une nouvelle image. Si tel est le cas, vous avez vraiment besoin de plus d’espace disque. La chose la plus simple à faire est de déplacer les sauvegardes vers S3.

1 « J'aime »

Je suis surpris par « l’espace disque est si limité » dans ma situation. Je lance le nettoyage, j’ai 7,9 Go d’espace libre, puis je lance ./launcher rebuild app et il refuse de terminer. Est-ce que 7,9 Go d’espace libre lorsque je veux reconstruire l’application est vraiment si peu ?!

(MISE À JOUR : Je comprends maintenant comment cela peut arriver. Je laisse cela ici pour que les passants innocents le trouvent dans une recherche sur le Web. Veuillez lire tout ce fil de discussion, les amis !)

Merci ! C’est en effet le problème ! Et cela semble être le point essentiel : "Less than 5GB of free space" — not true! 👀 - #3 by Simon_Manning

En particulier :

Pour cette reconstruction particulière, vous avez dû télécharger une nouvelle image de base

Il serait particulièrement utile d’inclure cette information d’une manière ou d’une autre dans le processus de mise à niveau, soit sous forme d’avertissement préalable « Nous devons télécharger une nouvelle image de base, vous avez donc probablement besoin de 3 Go d’espace supplémentaire par rapport à la normale pour la mise à niveau. Si vous manquez d’espace, c’est probablement pour cela. », soit sous forme d’erreur plus détaillée lorsque le processus de mise à niveau/reconstruction manque d’espace. Sinon, nous nous retrouvons dans une boucle sans fin de « Voilà ! Vous avez tout l’espace dont vous (semblez) avoir besoin ! » (Picard avec le bras tendu.)

Il serait également particulièrement utile de ne pas avoir à chercher autant pour trouver l’option d’utiliser ./launcher rebuild app --skip-prereqs lorsque vous voulez dire « Faites-moi confiance, j’ai assez d’espace disque ». Oui, mettez des avertissements en gras, en rouge, en police 72 points.

Cette « nouvelle image de base rend la mise à niveau fantaisiste » se produit assez rarement pour que nous l’oubliions, mais elle cause des problèmes lors de la mise à niveau. Quel est l’endroit approprié pour un article à ce sujet qui centralise ce que nous savons sur la façon de contourner les problèmes ?

Merci.

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