Ho provato a installare un plugin, ha distrutto il sito e non riesco a eseguire il rebuild

Stavo cercando di installare il plugin format, ma ho inserito il codice nel posto sbagliato e, quando ho ricompilato e caricato il sito, il plugin non si stava inizializzando. Quindi ho individuato l’errore, l’ho rimosso… e mi è stato segnalato un errore su una riga. Ho trovato l’errore in quella riga, l’ho passato attraverso yamllint, ho verificato che fosse corretto, ho rimosso il plugin… ma ora la ricompilazione non funziona. Continua a restituire un errore persistente e, sebbene riesca a caricare la pagina principale del sito, non riesco a caricare nessun argomento o altro.

Questo è l’output del rebuild e del doctor:

Riepilogo
FAILED
--------------------
NoMethodError: undefined method `each' for nil:NilClass
Posizione dell'errore: /pups/lib/pups/config.rb:99:in `run_commands'
dfd33a9a3be65ddb9a1fd19c19e5034a44c39f46e330ccdf0533f4f66d7d0005
** FAILED TO BOOTSTRAP ** scorri verso l'alto e cerca eventuali messaggi di errore precedenti; potrebbero essercene più di uno.
./discourse-doctor può aiutare a diagnosticare il problema.
root:/var/discourse# ./discourse-doctor
DISCOURSE DOCTOR Thu Jul 16 07:53:05 UTC 2020
OS: Linux itsbx 4.15.0-99-generic #100-Ubuntu SMP Wed Apr 22 20:32:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux



==================== PROBLEMA GRAVE!!!! ====================
l'applicazione non è in esecuzione!
Tentativo di ricompilazione
==================== LOG DI RICOMPILAZIONE ====================
Verifica che il launcher sia aggiornato
Fetching origin
Il launcher è aggiornato
Arresto del contenitore precedente
+ /usr/bin/docker stop -t 60 app
app
cd /pups && git pull && /pups/bin/pups --stdin
Already up to date.
I, [2020-07-16T07:53:23.985444 #1]  INFO -- : Loading --stdin


FAILED
--------------------
NoMethodError: undefined method `each' for nil:NilClass
Posizione dell'errore: /pups/lib/pups/config.rb:99:in `run_commands'
2386f66f76d9c9ffbbcd02bfad9e0530683714d433bff8d70976cae6c4b8fc86
** FAILED TO BOOTSTRAP ** scorri verso l'alto e cerca eventuali messaggi di errore precedenti; potrebbero essercene più di uno.
./discourse-doctor può aiutare a diagnosticare il problema.
==================== FINE LOG DI RICOMPILAZIONE ====================
Ricompilazione dell'applicazione fallita.

Controllo del nome di dominio . . .

Connessione al tuo sito riuscita.
Dovresti probabilmente rimuovere eventuali plugin non standard e ricompilare.
Tentativo di riavvio del contenitore esistente . . .

avvio del contenitore esistente
+ /usr/bin/docker start app
Errore di risposta dal demone: il driver non è riuscito a programmare la connettività esterna per l'endpoint app (39c7d5a80e10058bc952825fccd073af0f2ff12857895aa1046a6615d879a5a0): Errore nell'avvio del proxy userland: listen tcp 0.0.0.0:443: bind: indirizzo già in uso
Errore: impossibile avviare i contenitori: app
Riavvio del contenitore fallito.


==================== PLUGIN ====================
          - git clone github.com/discourse/docker_manager.git

Nessun plugin non ufficiale rilevato.

Consulta thub.com/discourse/discourse/blob/master/lib/plugin/metadata.rb per l'elenco ufficiale.

========================================
**Versione di Discourse su myhost: NON TROVATA**
**Versione di Discourse su localhost: NON TROVATA**


==================== INFORMAZIONI SULLA MEMORIA ====================
RAM (MB): 2041

              total        used        free      shared  buff/cache   available
Mem:           1993         144        1237           0         611        1677
Swap:          2047          76        1971

==================== CONTROLLO SPAZIO SU DISCO ====================
---------- Spazio su disco del sistema operativo ----------
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        49G   11G   38G  22% /

==================== INFORMAZIONI SUL DISCO ====================
Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 3980448C-AF15-4833-A022-C759F0D2D80A

Device      Start       End   Sectors  Size Type
/dev/vda1  227328 104857566 104630239 49.9G Linux filesystem
/dev/vda14   2048     10239      8192    4M BIOS boot
/dev/vda15  10240    227327    217088  106M Microsoft basic data

Le voci della tabella delle partizioni non sono in ordine sul disco.

==================== FINE INFORMAZIONI SUL DISCO ====================

Non ho assolutamente idea di cosa fare, ma il sito è completamente distrutto al momento. Ho rimosso i link perché posso usarne solo 3 per post, ma sono presenti. Le ricompilazioni funzionavano regolarmente FINO A QUANDO non ho rimosso il plugin che avevo inserito nel posto sbagliato; da allora tutto si è bloccato. Aveva modificato alcune righe, ma ho confermato che erano state corrette. Sono completamente bloccato. Ho appena provato a rieseguire setup e confermare tutte le impostazioni: è andato tutto bene, ma la ricompilazione è fallita di nuovo…

Va bene, dopo aver provato per ore a rieseguire e modificare le cose, ho finalmente provato

./launcher start app ed è andato tutto bene, e il plugin è installato (anche se pensavo di averlo rimosso?). Comunque sia. Ora però ho paura di provare a ricostruire o installare altro, perché non so esattamente cosa abbia causato questo problema, o nemmeno cosa sia stato risolto. Quindi qualsiasi chiarimento sarebbe ancora apprezzato.

È impossibile capire dalla tua descrizione quale potrebbe essere stato il problema, ma se l’ultimo rebuild è andato a buon fine, è molto probabile che anche il prossimo avrà successo.

Ha appena avviato un’immagine vecchia con ./launcher start app, credo.

@Kartoon puoi provare a ricostruire; se fallisce, potrai comunque riprendere l’ultima immagine nota funzionante con lo stesso comando.

Scusa, ho avuto un piccolo imprevisto e non sono riuscito a controllare questo argomento.

Il ripristino NON ha funzionato, e ho provato di nuovo oggi senza successo. Il sito funziona correttamente dopo aver eseguito “./launcher start app”, ma ogni volta che provo a ricostruirlo fallisce, e anche il discorso del medico genera errori. Posso pubblicare il log che mi fornisce, se può essere utile, ma è chiaro che c’è ancora qualcosa che non va e mi preoccupa che questo possa causare problemi in futuro.

Sembra che ci sia un errore di formattazione nel tuo file yml.

Può essere difficile trovare e riconoscere tali errori. Esistono strumenti che li verificano.

Quello che faccio solitamente quando aggiungo un plugin è copiare/incollare una riga di un plugin esistente e modificare l’URL di GitHub. In questo modo si riduce al minimo la probabilità di rompere qualcosa.

È quello che ho pensato e inizialmente era sbagliato, ma mi sono riferito a http://www.yamllint.com/ per correggere gli errori derivanti dal fatto che avevo inserito il testo del plugin nei posti sbagliati, e il risultato è che ora è perfettamente corretto. Ho verificato numerose volte durante tutto il processo (sia singoli pezzi che l’insieme) e il sito ha confermato che è tutto giusto. A meno che quel sito non sia inaccurato per qualche motivo, il che per quanto ne so è possibile, non sono così esperto da saperlo con certezza.

Questo è ciò che ottengo quando provo a ricostruire, e questo è ciò che succede quando eseguo discourse doctor (entrambi come di cinque minuti fa). Ho rimosso le informazioni personali, ma nel log effettivo sono tutte presenti e corrette

ricostruisci app

Assicurazione che il launcher sia aggiornato
Recupero di origin
Il launcher è aggiornato
Arresto del contenitore precedente

  • /usr/bin/docker stop -t 60 app
    app
    cd /pups && git pull && /pups/bin/pups --stdin
    Già aggiornato.
    I, [2020-07-23T22:58:14.812604 #1] INFO – : Caricamento da --stdin

FALLITO

NoMethodError: metodo ‘each’ non definito per nil:NilClass
Posizione dell’errore: /pups/lib/pups/config.rb:99:in `run_commands’
1a575aa2a169fcb4a9bbb0874c55d3fd01ee1e7368ff58e2099c9602f6c32109
** FALLO DI BOOTSTRAP ** scorri verso l’alto e cerca messaggi di errore precedenti, potrebbero essercene più di uno.
./discourse-doctor può aiutare a diagnosticare il problema.

discourse-doctor

DISCOURSE DOCTOR Gio 23 Lug 22:59:22 UTC 2020
OS: Linux itsbx 4.15.0-111-generic #112-Ubuntu SMP Gio 9 Lug 20:32:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Trovato containers/app.yml

==================== IMPOSTAZIONI YML ====================
DISCOURSE_HOSTNAME=ok
SMTP_ADDRESS=ok
DEVELOPER_EMAILS=ok
SMTP_PASSWORD=ok
SMTP_PORT=587
SMTP_USER_NAME=ok
LETSENCRYPT_ACCOUNT_EMAIL=ok

==================== INFORMAZIONI DOCKER ====================
VERSIONE DOCKER: Docker version 19.03.8, build afacb8b7f0

PROCESSI DOCKER (docker ps -a)

ID CONTENITORE IMMAGINE COMANDO CREAZIONE STATO PORTE NOMI
343a1aa3c05c local_discourse/app “/sbin/boot” 7 giorni fa Uscito (5) Circa un minuto fa app

==================== PROBLEMA GRAVE!!! ====================
app non in esecuzione!
Tentativo di ricostruzione
==================== LOG DI RICOSTRUZIONE ====================
Assicurazione che il launcher sia aggiornato
Recupero di origin
Il launcher è aggiornato
Arresto del contenitore precedente

  • /usr/bin/docker stop -t 60 app
    app
    cd /pups && git pull && /pups/bin/pups --stdin
    Già aggiornato.
    I, [2020-07-23T22:59:41.894064 #1] INFO – : Caricamento da --stdin

FALLITO

NoMethodError: metodo ‘each’ non definito per nil:NilClass
Posizione dell’errore: /pups/lib/pups/config.rb:99:in `run_commands’
439734a2cd69755d8351bbdadd9756cb573577d7f1b306aedaafa1c7d4bc29cf
** FALLO DI BOOTSTRAP ** scorri verso l’alto e cerca messaggi di errore precedenti, potrebbero essercene più di uno.
./discourse-doctor può aiutare a diagnosticare il problema.
==================== FINE LOG DI RICOSTRUZIONE ====================
Ricostruzione dell’app fallita.

Verifica del nome di dominio . . .

Connessione al sito web riuscita.
Probabilmente dovresti rimuovere eventuali plugin non standard e ricostruire.
Tentativo di riavvio del contenitore esistente . . .

avvio del contenitore esistente

  • /usr/bin/docker start app
    Errore di risposta dal demone: il driver ha fallito la programmazione della connettività esterna sull’endpoint app (100c15324a128a2b007d8b89e29fe0f455585fd8c7d99855ef87bb4f17892b4b): Errore nell’avvio del proxy userland: listen tcp 0.0.0.0:443: bind: indirizzo già in uso
    Errore: fallito l’avvio dei contenitori: app
    Riavvio del contenitore fallito.

==================== PLUGIN ====================
- git clone GitHub - discourse/docker_manager: Plugin for use with discourse docker image · GitHub

Nessun plugin non ufficiale rilevato.

Vedi discourse/lib/plugin/metadata.rb at main · discourse/discourse · GitHub per l’elenco ufficiale.

========================================
Versione di Discourse sul sito web: NON TROVATA
Versione di Discourse su localhost: NON TROVATA

==================== INFORMAZIONI SULLA MEMORIA ====================
RAM (MB): 2041

          total        used        free      shared  buff/cache   available

Mem: 1993 140 1310 0 542 1695
Swap: 2047 72 1975

==================== CONTROLLO SPAZIO SU DISCO ====================
---------- Spazio su disco del sistema operativo ----------
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 49G 13G 37G 26% /

==================== INFORMAZIONI SUL DISCO ====================
Disco /dev/vda: 50 GiB, 53687091200 byte, 104857600 settori
Unità: settori da 1 * 512 = 512 byte
Dimensione settore (logico/fisico): 512 byte / 512 byte
Dimensione I/O (minima/ottimale): 512 byte / 512 byte
Tipo di etichetta disco: gpt
Identificatore disco: 3980448C-AF15-4833-A022-C759F0D2D80A

Dispositivo Start End Sectors Size Type
/dev/vda1 227328 104857566 104630239 49.9G Linux filesystem
/dev/vda14 2048 10239 8192 4M BIOS boot
/dev/vda15 10240 227327 217088 106M Microsoft basic data

Le voci della tabella delle partizioni non sono in ordine sul disco.

==================== FINE INFORMAZIONI SUL DISCO ====================

La cosa che noto immediatamente è che dice “problema grave, app non in esecuzione”. E “versione di Discourse sul sito web e su localhost non trovata”. La mia assunzione (non informata) è che, qualsiasi cosa significhino queste cose, questo sia il problema.

Inoltre, il mio sito si è appena bloccato quando ho eseguito la ricostruzione e ho dovuto fare “start app” per farlo funzionare di nuovo.

Hmm. Beh, non sembra un problema di formattazione, ma non riesco a capire di cosa si tratti.

Se il file app.yml ti preoccupa, penso sia meglio ricominciare con un file app.yml pulito

rm /var/discourse/containers/app.yml
cd /var/discourse
cp samples/standalone.yml containers/app.yml
nano containers/app.yml

Quindi puoi ricostruire quando tutto è stato verificato

Ha funzionato perfettamente. Era chiaro che, quando segnalava che il file YAML era corretto, in realtà non lo era.

Poi ho avuto un problema temporaneo con l’invio delle email, ma quando sono andato a ricontrollare il nuovo file YAML mi sono reso conto di aver sbagliato l’indirizzo email (dimentico sempre di averlo impostato come @mg. su Mailgun…), quindi è stato risolto in cinque minuti.

Gah, grazie mille, ora non ho più la paura che una distruzione imminente si verifichi in qualsiasi momento.