Purtroppo, eseguire semplicemente
./launcher start app
non ripristina il forum.
Comunque, ho fatto ulteriori esperimenti. Nello specifico, ho provato a eseguire manualmente il comando yarn fallito nell’immagine docker:
./launcher enter app
cd /var/www/discourse
su discourse
yarn install --frozen-lockfile
... fallisce con lo stesso timeout ...
yarn config set network-timeout 600000 -g
yarn install --frozen-lockfile
... riesce ...
Questo conferma che aumentare il timeout risolve il problema.
La domanda rimanente è quindi come aumentare anche il timeout durante ./launcher rebuild app.
Il file web.template.yml si trova effettivamente in discourse/containers al di fuori dell’immagine docker. Non l’ho trovato inizialmente, perché la mia installazione di Discourse si trova in una posizione non standard, non in /var/discourse.
La correzione menzionata nel post a cui si fa riferimento si riferisce alla riga 159, ma questa non sembra più corretta, probabilmente a causa degli aggiornamenti. Ci sono tuttavia queste righe intorno alla riga 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'
Il post suggerisce di inserire una nuova sezione per impostare il timeout, ma non fornisce istruzioni specifiche su come farlo. Non ho molta familiarità con yaml, pups e yarn o con il loro utilizzo in Discourse, quindi non ho voluto indovinare. Invece, ho provato questa modifica alla sezione originale:
- 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'
Il comando ./launcher rebuild app ora richiede molto tempo (più di due ore!, molto più tempo di quanto impiegasse in precedenza). La buona notizia è che il forum è di nuovo online! Ottimo, grazie per l’aiuto.
C’è un modo per aumentare il timeout aggiungendo un comando a containers/app.yml? Sarebbe conveniente, poiché manterrebbe tutte le mie personalizzazioni in un unico file.
L’utilizzo di una configurazione a 2 container sembra un’ottima idea; non ero a conoscenza della sua possibilità. Immagino ti riferisca a questo: Move from standalone container to separate web and data containers; ci proverò. Qualsiasi consiglio aggiuntivo è benvenuto.
Quando eseguo un aggiornamento della mia istanza Discourse dal browser, esegue anche ./launcher rebuild app? Mette temporaneamente offline il forum? Finora, avevo l’impressione che il forum rimanesse online durante la maggior parte del processo, ma non ne sono sicuro. Queste cose non mi sono mai state chiare e non ho mai avuto il tempo di capirle veramente. Qualsiasi risposta o indicazione per ulteriori informazioni è benvenuta.