Malheureusement, le simple fait d’exécuter
./launcher start app
ne remet pas le forum en ligne.
Quoi qu’il en soit, j’ai mené d’autres expériences. Plus précisément, j’ai essayé d’exécuter manuellement la commande yarn défaillante dans l’image Docker :
./launcher enter app
cd /var/www/discourse
su discourse
yarn install --frozen-lockfile
... échoue avec le même timeout ...
yarn config set network-timeout 600000 -g
yarn install --frozen-lockfile
... réussit ...
Cela confirme que l’augmentation du timeout résout le problème.
La question restante est donc de savoir comment augmenter également le timeout lors de ./launcher rebuild app.
Le fichier web.template.yml est bien situé dans discourse/containers en dehors de l’image Docker. Je ne l’avais pas trouvé initialement, car mon installation Discourse se trouve dans un emplacement non standard, pas dans /var/discourse.
La correction mentionnée dans le post référencé ci-dessus fait référence à la ligne 159, mais cela ne semble plus correct, probablement en raison des mises à jour. Il y a cependant ces lignes autour de la ligne 188 :
- exec:
cd: $home
hook: yarn
cmd:
- |
if [ "$version" != "tests-passed" ]; then
rm -rf app/assets/javascripts/node_modules
fi
- su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
Le post suggère d’insérer une nouvelle section pour définir le timeout, mais ne donne pas d’instructions précises sur la façon de le faire. Je ne suis pas très familier avec yaml, pups et yarn ou leur utilisation dans Discourse, donc je ne voulais pas deviner. Au lieu de cela, j’ai essayé cette modification de la section d’origine :
- exec:
cd: $home
hook: yarn
cmd:
- |
if [ "$version" != "tests-passed" ]; then
rm -rf app/assets/javascripts/node_modules
fi
- su discourse -c 'yarn config set network-timeout 600000 -g && yarn install --frozen-lockfile && yarn cache clean'
La commande ./launcher rebuild app prend maintenant très longtemps (plus de deux heures !, beaucoup plus longtemps qu’avant). La bonne nouvelle est que le forum est de retour en ligne ! Super, merci pour votre aide.
Existe-t-il un moyen d’augmenter le timeout en ajoutant une commande à containers/app.yml ? Ce serait pratique, car cela permettrait de conserver toutes mes personnalisations dans un seul fichier.
L’utilisation d’une configuration à 2 conteneurs semble être une excellente idée ; je n’étais pas au courant que c’était possible. Je suppose que vous faites référence à ceci : Move from standalone container to separate web and data containers ; je vais l’essayer. Tout conseil supplémentaire est le bienvenu.
Lorsque je mets à jour mon instance Discourse depuis le navigateur, exécute-t-il également ./launcher rebuild app ? Met-il temporairement le forum hors ligne ? Jusqu’à présent, j’avais l’impression que le forum restait en ligne pendant la majeure partie du processus, mais je ne suis pas sûr. Ces choses n’ont jamais été claires pour moi, et je n’ai jamais eu le temps de vraiment comprendre. Toutes les réponses ou indications vers plus d’informations sont les bienvenues.