È stata un’installazione standard? Potrebbe essere qualcosa come eseguire l’aggiornamento sul server sbagliato? La ricostruzione è fallita e hai riavviato il vecchio container? Non ho altre ipotesi migliori.
Dovresti mantenere il tuo sistema operativo aggiornato come raccomandato nell’argomento che hai collegato, ma questo non è correlato al problema che descrivi.
Mi ha lasciato perplesso in alcune occasioni quando l’aggiornamento della GUI non sembrava essere reimpostato e ci indirizzava a fare l’SSH, anche quando questo è stato appena fatto.
È stata un’installazione standard, ma l’installazione originale risale al 2014, agli albori quando Discourse non era uscito da molto tempo dalla beta pubblica.
user@server:/var/discourse$ docker -v
Docker version 19.03.13, build 4484c46d9d
Esiste una versione più recente di Docker, ma è comune che la versione in Ubuntu sia un po’ indietro rispetto all’ultima.
Il sistema operativo è completamente e regolarmente aggiornato.
Hmm. C’è un ritardo dopo l’aggiornamento prima che Discourse verifichi se il container è stato ricostruito, anche se non ho mai saputo che ciò influenzi docker-manager.
Potrebbe dipendere dal branch che stiamo eseguendo?
In containers/app.yml stiamo selezionando esplicitamente tests-passed
Ma ovviamente questo è ciò che viene eseguito ALL’INTERNO del container. Potrebbe avere importanza quale sia il branch predefinito all’esterno del container?
user@server:/var/discourse# git status
On branch master
Your branch is up to date with 'origin/master'.
Tuttavia, sono d’accordo con @pfaffman e non l’ho mai fatto esplicitamente, quindi deve esserci stato uno script che lo ha fatto. Forse accadrà con la prossima ricostruzione?
user@inside-container-app:/var/www/discourse# git status
Refresh index: 100% (30949/30949), done.
On branch tests-passed
Your branch is up to date with 'origin/tests-passed'.
Sì. Ho dato un’occhiata su un altro Discourse che gestisco, che risale un po’, ed è anch’esso su master e presenta la stessa pagina “Aggiornamenti disabilitati”.
Detto questo, un altro Discourse che ho configurato a metà 2022 è anch’esso su master e presenta la schermata di aggiornamento normalmente!
Se riusciamo ad avere una conferma che cambiare il branch di discourse_docker per tracciare main risolverà il problema, allora sono pronto a provarci. Magari su un sito che uso solo io.
Ciò coinciderebbe approssimativamente con il momento in cui ho iniziato ad avere comportamenti strani su alcuni Discourse intorno al momento dell’aggiornamento. (Per questo motivo, ho finito per aggiornarli tutti tramite SSH ogni volta, usando Ansible).
È praticamente quello che faccio sempre anch’io, anche se sempre più spesso, aumento lo script di aggiornamento di Ansible con https://www.pfaffmanager.com/.
Il launcher cambia automaticamente il branch da master a main. Sembra che qualcosa stesse bloccando il passaggio automatico, come modifiche in sospeso nello stash.
Di quanti stiamo parlando? Ci sono migliaia di Discourse in circolazione e non vedo decine di segnalazioni di questo problema. Almeno non ancora
Se qualcuno ha un server che sta attualmente riproducendo questo bug e può mantenerlo tale per un altro giorno, per favore risponda qui in modo che possiamo indagare ulteriormente.
Hmmmm. Questo potrebbe avere a che fare con questo sulla nostra istanza @nathank
Ho un paio di file operativi (che non hanno nulla a che fare con il codebase di Discourse) nella stessa directory del repository Git di Discourse. Se ./launcher tentasse di cambiare branch, Git dovrebbe generare un errore, richiedendomi di mettere in stash queste modifiche (o di eseguirne il commit).
Grazie @Falco, farò ulteriori indagini. Potrebbe darsi che le uniche istanze di Discourse che sarebbero interessate siano quelle in cui Git genera un errore per qualsiasi motivo nel tentativo di cambiare branch.
Aggiornamento: Penso che questo problema con alcuni file non tracciati possa essere stato il problema.
Ho rimosso i file e mi sono assicurato che il comando git checkout main avesse successo.
Quindi ho eseguito ./launcher rebuild app e sembra aver funzionato.
Per quanto ne so, come afferma @Falco sopra, non credo che sia effettivamente necessario tracciare main nel repository Discourse. Quando esegui ./launcher rebuild app, lo script stesso effettuerà il checkout del branch corretto.