Rebuild si blocca quando si tenta di fermare il container

Ho ricevuto oggi il mio primo messaggio Stai eseguendo una versione obsoleta dell’immagine Discourse. Gli aggiornamenti tramite l’interfaccia web sono disabilitati finché non esegui l’immagine più recente e penso di aver compromesso la mia installazione.

Ho seguito le istruzioni, eseguendo ogni comando con sudo perché il mio provider di hosting non consente la creazione di utenti root.

cd /var/discourse
sudo git pull
sudo ./launcher rebuild app

Ho quindi dovuto rieseguire sudo git stash prima del pull a causa di un errore relativo a conflitti.

Tutto sembrava procedere correttamente (l’ho lasciato per oltre un’ora), ma poi la mia sessione Terminal si è chiusa (errore di pipe interrotto). Per risolvere, ho impostato ClientAliveInterval sul server a 60, poiché era commentato, ho riavviato e riprovato.

Ora, quando lo script di rebuild viene eseguito, si blocca quando tenta di fermare il contenitore Docker.

Ho provato a aggirare il problema eseguendo docker kill <id> prima di lanciare lo script di rebuild, ma si verifica lo stesso blocco (CPU al 100% per circa 15 minuti… poi nulla per ore).

Quando riavvio, il sito viene ancora caricato, ma non riesco ad aggiornarlo (l’aggiornatore dell’interfaccia continua a indicare che sto eseguendo un’immagine Discourse obsoleta).

Qualsiasi consiglio sarà molto apprezzato.

È piuttosto difficile indovinare senza vedere l’output della build.

Potresti provare a usare tmux (o uno strumento simile) per mantenere la sessione aperta quando ti disconnetti (puoi ricollegarti alla sessione con tmux attach).

Dai un’occhiata all’aggiornamento PostgreSQL 13?

Grazie Jay, penso di aver individuato il problema.

Il mio provider VPS, webdock.io (che per la verità è ottimo), non supporta ZFS perché lo utilizza a livello di host; mi è stato consigliato di evitare ZFS annidato. Inoltre, non hanno raccomandato overlay2 per la mia installazione e mi hanno suggerito di modificare launcher per includere il driver di archiviazione vfs, che non è presente di default.

171‎‏‏‎ ‎‏‏‎ ‎‏‏‎‎‏‏‎ ‎‏‏‎ ‎‏‏‎ Storage Driver: (vfs|aufs|zfs|overlay2)
‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎‎‏‏‎ ‎‎‏‏‎ ‎‏‏‎ ‎‏‏‎‎‏‏‎ ‎‏‏‎ ‎‏‏‎‎‏‏‎ ‎‏‏‎ ‎‏‏‎‎‏‏‎ ‏‏‎ ‎‏‏‎‎‏‏‎ ‎‏‏‎ ‎‏‏‎‎‏‏‎ ‎‏‏‎ ‏‏‎‎‏⬆️

Sospetto che sudo git pull abbia sovrascritto questa modifica e che poi abbia tentato di ricostruire con il driver di archiviazione sbagliato?

Ho appena ripristinato tutto, quindi ho modificato nuovamente launcher prima di eseguire rebuild app e ora tutto funziona di nuovo.

cd /var/discourse
sudo git stash
sudo git pull
sudo nano launcher 

‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ poi modifica la riga 171 per includere vfs

sudo ./launcher rebuild app

Ciao @ajmuir,
So che hai risolto il tuo problema più di un anno fa, ma volevo aggiungere la mia opinione a questa discussione e anche indirizzare i nuovi utenti che trovano questo thread sulla strada giusta.

Webdock (ora) consiglia di utilizzare fuse-overlayfs come driver di archiviazione Docker da utilizzare: How to change the Docker storage driver – Webdock

Il motivo è che vfs produce un elevato utilizzo dello spazio su disco.

Ma l’utilizzo di fuse-overlayfs per Docker produrrà un avviso o un errore dal lato del launcher Discourse, poiché non è un driver consigliato.

Ho istruzioni dettagliate su come risolvere questo problema in questo post sul mio blog: Deploying Discourse on a Webdock server

Puoi anche fare come hai fatto tu aggiungendo il driver installato all’istruzione egrep.

E perché dici che Webdock non consente la creazione di utenti root?
Puoi semplicemente passare a root con sudo su ed eseguire i comandi dalla guida di installazione di Discourse in seguito.