Come eseguire il backup e il ripristino dell'intera cartella dell'app /var/discourse?

Non puoi semplicemente “tarare” la directory /var/discourse, spostarla su un’altra macchina, estrarla e avviare l’app Discourse.

Uno dei motivi principali è che quando buildi / avvii Discourse, il launcher (come ricordo a memoria) verifica se esiste un container Discourse di base (immagine) e scarica l’immagine Docker di base di Discourse (se non esiste), avviando poi quell’immagine Docker di base in un container.

Dopo quel pull git di base, il processo di build crea un’altra immagine Docker (quella dell’app).

Entrambe queste immagini Docker (l’immagine di base e l’immagine dell’app) non esistono all’interno di /var/discourse, quindi tarare /var/discourse è solo una “soluzione” parziale (usando questo termine in senso lato).

Queste immagini Docker di Discourse sono create come immagini Docker e fanno parte di Docker; non “vivono” in /var/discourse ma vengono costruite lì e poi spostate in Docker come immagini Docker.

Potrebbe essere possibile modificare il file yml del tuo container e ricominciare da capo, ma il metodo più convenzionale è salvare:

  • il/i file yml del/i container
  • il tuo backup completo con gli upload

quindi modificare il file yml del container, clonare il repository discourse-docker e ricominciare la build.

Poi, ripristina il tuo backup completo, inclusi gli upload (da riga di comando nel container).

Utilizzare GitHub come repository è una soluzione più pulita rispetto al vecchio metodo unixy di “tarare tutto il maledetto pacchetto” e “spostare tutto il maledetto pacchetto” su un altro server. Tuttavia, anche con il “vecchio metodo unix”, questo approccio spesso non fornisce una soluzione completa perché ci sono spesso librerie condivise nel sistema, directory utente delle librerie condivise e altro ancora che non fanno parte della directory di distribuzione, e ci sono file etc che non si trovano nella directory root della distribuzione, ecc.

Quindi, anche nella maggior parte dei sistemi Linux moderni, usiamo apt (su Ubuntu, ad esempio) per scaricare il repository. Nel caso di Discourse Docker, stai scaricando (e costruendo) discourse-docker per impostare il container di base e un altro repository Discourse per costruire l’app. Quindi, /var/discourse è un “luogo per costruire” (le immagini) e un “luogo per condividere” (i dati, i backup, i file statici pubblici, ecc.).

Spero che questo riassunto sia stato utile in qualche piccola misura.