Aggiornamento Discourse molto vecchio: Errore Ruby

Sto cercando di aggiornare un’installazione molto vecchia.

Ho iniziato con questo:

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

Poi ho ricevuto un errore e scorrendo il file di log l’unico errore è questo:

ERROR: Errore durante l’installazione di bundler:
bundler-2.5.3 richiede la versione di Ruby >= 3.0.0. La versione corrente di ruby è 2.7.2.137.

Come posso ottenere una nuova installazione di Ruby? Il sistema è stato originariamente installato da un’immagine Docker su Digital Ocean e non è stato aggiornato molto, se non affatto, per diversi anni.

È in esecuzione su Ubuntu 18.04.

Ho eseguito ./discourse-doctor

e c’era uno stato di “detached head” e poi la ricostruzione e poi lo stesso errore di Ruby.

Ora sono completamente perso.

Qualsiasi aiuto su come far funzionare un aggiornamento da una versione antica?

La tua immagine container potrebbe essere bloccata su un’immagine base di Discourse molto vecchia.

Puoi pubblicare qui la tua configurazione del container (redatta)?

Non so come farlo, ma dall’output del dottore del discorso ho trovato questo
DOCKER VERSION: Docker version 19.03.1, build 74b1e89

Ed è stato creato 3 anni fa

1 Mi Piace

Data l’età della macchina host, la cosa migliore da fare qui è probabilmente fare un backup del sito, creare un nuovo server, eseguire l’installazione, quindi ripristinare il backup sul nuovo server.

Sarà meno lavoro (e molto più facile) rispetto all’aggiornamento del server esistente.

2 Mi Piace

Ma dato che l’installazione è fallita non riesco a far partire discourse per fare un backup. Posso e ho fatto uno snapshot del droplet di Digital Ocean ma non è proprio un backup per come lo capisco io.

Dovresti essere in grado di eseguire semplicemente ./launcher start app per riavviare nel vecchio sito.

1 Mi Piace

Ho provato ora e ricevo il problema 502 bad gateway :sigh:

1 Mi Piace

Farei rsync della vecchia /var/discourse al nuovo server. O forse solo containers e shared.

OK, sono così fuori dalla mia portata qui che la mia soluzione è andare a pubblicare un annuncio di lavoro a pagamento nel Marketplace :grinning:

2 Mi Piace

Se hai uno snapshot del droplet con tutti i tuoi dati prima di tentare di aggiornare il container, dovresti essere in grado di recuperare un backup da quello.

In caso contrario, stai quasi certamente ancora bene, ma hai bisogno di qualcuno esperto nel processo per poter estrarre i dati da esso se non riesci a ripristinare il container.

Al momento, anche con il bad gateway, se riesci ad accedere al container dovresti essere in grado di eseguire un discourse backup e recuperare i tuoi dati.

4 Mi Piace