Aggiornamento con poco spazio: fermare l'app, poi pulizia, poi ricompilare l'app?

Ciao a tutti. Sembra una domanda stupida, ma la farò comunque.

Mi sono trovato bloccato in questo familiare ciclo:

  1. Aggiornamento fallito.
  2. Prova ./launcher rebuild app, ma spazio su disco insufficiente. (Meno di 5 GB liberi.)
  3. ./launcher cleanup, che sembra aver liberato un po’ di spazio su disco. (Oltre 5 GB liberi.)
  4. VAI A 2.

Dato che non so ancora quali operazioni siano sicure (cioè non distruggano i dati del mio sito), ho proceduto con cautela, sperando di non dover ripristinare da un backup. Ho finito per fare questo e sembra aver funzionato per me.

  1. ./launcher stop app
  2. ./launcher cleanup, che ha liberato molto più spazio di prima, il che mi ha subito reso nervoso.
  3. git pull
  4. ./launcher rebuild app

Questo non solo ha funzionato, ma ha portato a un sito funzionante con dati intatti e con circa 2 GB di spazio libero in più rispetto a prima.

Ora non sono sicuro se quello che ho fatto sia stato brillante, ovvio, o rischioso e abbia semplicemente funzionato. Vorrei capire un po’ meglio perché ho ottenuto i risultati che ho ottenuto e se quello sia stato un modo sensato di aggiornare.

Molte grazie.

1 Mi Piace

docker crea un sacco di file quando crea un container (includi i container che crea) quando crei un nuovo container, hai ancora i vecchi container (e anche le immagini del disco). Questo è ciò che viene rimosso quando esegui una pulizia.

È un po’ più sicuro eseguire il comando di pulizia mentre discourse è in esecuzione, perché il comando di pulizia non eliminerà un container in esecuzione. Se qualcosa va storto con la ricostruzione, puoi ancora riavviare il vecchio container se esiste.

Quindi, rimuoverei il passaggio (1) sopra e il passaggio (3) è non necessario perché ./launcher esegue un pull (in passato, non lo faceva).

Potrebbe essere sbagliato, ma non risulterebbe negli stessi due passaggi del primo blocco che non funzionavano? (2-4):

A proposito, questo sembra un po’ più di questo argomento:

2 Mi Piace

OOps. Sì. Non l’avevo riletto.

Quindi sì, se lo spazio su disco è così limitato da non avere spazio per due immagini, allora devi distruggerle tutte prima di costruirne una nuova, il che ti mette in una brutta situazione se per qualche motivo non riesci a costruire una nuova immagine. In tal caso, hai davvero bisogno di più spazio su disco. La cosa più semplice da fare è spostare i backup su S3.

1 Mi Piace

Sono sorpreso da “lo spazio su disco è così limitato” nella mia situazione. Eseguo la pulizia, ho 7,9 GB liberi, poi eseguo ./launcher rebuild app e si rifiuta di finire. 7,9 GB liberi quando voglio ricostruire l’app sono davvero così pochi?!

(AGGIORNAMENTO: Ora capisco come può succedere. Lascio questo qui per gli astanti da trovare in una ricerca sul web. Per favore, leggete l’intera discussione, gente!)

Grazie! Questo è effettivamente il problema! E questo sembra essere il punto saliente: "Less than 5GB of free space" — not true! 👀 - #3 by Simon_Manning

In particolare:

Per questa particolare ricostruzione era necessario scaricare una nuova immagine di base

Sarebbe particolarmente utile includere queste informazioni in qualche modo nel processo di aggiornamento, sia come avviso anticipato “Dobbiamo scaricare una nuova immagine di base, quindi probabilmente hai bisogno di 3 GB di spazio in più del normale per aggiornare. Se esaurisci lo spazio, è probabilmente per questo” o come errore più dettagliato quando il processo di aggiornamento/ricostruzione esaurisce lo spazio. Altrimenti, ci ritroviamo in un ciclo infinito di “Ecco! C’è tutto lo spazio di cui (sembra) hai bisogno!” (Picard con il braccio teso.)

Sarebbe anche particolarmente utile non dover scavare così tanto per trovare l’opzione per usare ./launcher rebuild app --skip-prereqs quando si intende “Fidati di me, fratello. Ho abbastanza spazio su disco.” Sì, metti avvisi in grassetto, rosso, carattere 72.

Questo “la nuova immagine di base rende l’aggiornamento complicato” accade abbastanza raramente da farcelo dimenticare, ma causa problemi durante l’aggiornamento. Dov’è il posto appropriato per un articolo su questo che centralizzi ciò che sappiamo su come aggirare i problemi?

Grazie.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.