Validation YML avant la reconstruction ?

Ceci est sur une installation Discourse auto-hébergée dans un VPS privé avec une installation Docker typique.

Je l’ai refait :
J’ai attendu une mise à jour de reconstruction de deux heures « sans faille » vers v3.4.0.beta2-dev.
Puis j’ai ajouté quelques lignes à app.yml et j’ai attendu encore deux heures pour une autre reconstruction.
(Pourquoi séparer les opérations ? Parce qu’un double coup n’est jamais bon s’il y a un risque d’erreurs.)
Ensuite, j’ai trouvé des erreurs d’exécution dans le journal car j’avais oublié des espaces dans app.yml (pour le compte et la clé MaxMind).
Donc ce soir, je dois faire encore une reconstruction.

Cela représente plus de six heures d’indisponibilité virtuelle, comparé à un site WordPress ou autre CMS qui ne prendrait que quelques minutes dans le même scénario. Cela crie « mauvaise expérience utilisateur » et donc « anti-marketing » - ce n’est tout simplement pas bon pour la plateforme.

La seule raison pour laquelle j’ai dû faire une deuxième reconstruction est parce que j’ai ajouté ces deux maudites lignes. J’aimerais vraiment qu’une reconstruction complète ne soit pas nécessaire juste à cause de ce petit changement dans le fichier de configuration.

  1. Y a-t-il eu des discussions sur la validation du fichier yml avant une reconstruction ? Cette simple fonctionnalité aurait éliminé une opération coûteuse en temps et les problèmes qui en découlent.

  2. Y a-t-il eu des discussions sur un préprocesseur qui détermine si une reconstruction complète est nécessaire après des changements spécifiques ?

  3. Je suis surpris qu’une erreur YAML n’ait pas été signalée dans les journaux. Y a-t-il une raison pour laquelle le répertoire principal .yml d’exécution et peut-être d’autres ne sont pas vérifiés pour les erreurs de syntaxe ? … Ou les administrateurs plus expérimentés font-ils leur propre analyse avant une reconstruction ? :thinking:

J’héberge sur Docker parce que je crois que c’est la plateforme « la plus simple » si/quand je transmets ce système à quelqu’un d’autre pour la maintenance. Si ce n’est pas correct, et que j’ai opté non seulement pour « pas le plus simple » mais aussi pour « le plus lent », peut-être devrais-je envisager une option d’installation différente.

Merci !

Une configuration à deux conteneurs permet de construire le nouveau conteneur pendant que l’ancien continue de fonctionner, il n’y a donc qu’une minute environ d’interruption pendant que le nouveau conteneur démarre.

C’est un temps de reconstruction très court. Je suppose que vous utilisez un Raspberry Pi ou quelque chose d’autre de très lent ?

Habituellement, en cas de problème de configuration yml, vous recevez une notification immédiatement.

Vous pouvez vérifier la taille du fichier en utilisant ce code, puis vous pourrez analyser s’il s’agit d’un problème d’espace

/var/discourse# du -sh /* | sort -h

Sauf avec ces deux espaces avec MaxMind. Ça passe mais la géolocalisation ne fonctionne pas. Ce n’est donc pas une erreur de syntaxe yml en soi, mais c’est quand même une erreur :man_shrugging:

1 « J'aime »