Oggi ho esaminato le immagini Docker disponibili per Discourse e ho alcune domande.
- In entrambe le immagini ho notato che viene installato Discourse (ovviamente). Successivamente, viene elencata una serie di passaggi per mettere tutto in funzione, principalmente la configurazione del nome di dominio e della posta elettronica.
Sono confuso riguardo al database. Non c’è alcun passaggio per configurarlo. Il database Postgres (o altro) è incluso nella stessa immagine? Anche Redis lo è? O è completamente opzionale?
Nell’elenco delle componenti presenti nell’immagine Docker non viene menzionato il database.
In azienda utilizzo Docker per sviluppo, staging e produzione.
I nostri container sono immutabili.
Quando dobbiamo aggiornare e distribuire una nuova immagine, preleviamo l’ultimo codice da Git e procediamo.
Non apportiamo mai modifiche all’interno del container, o almeno nessuna che ci aspetteremmo di mantenere oltre il prossimo aggiornamento.
Quando vogliamo passare a una versione aggiornata di .NET, ad esempio, modifichiamo semplicemente l’immagine base e la distribuiamo.
Leggendo informazioni sull’immagine Docker per Discourse, sembrava che venissero apportate modifiche al contenuto dell’immagine come in un’installazione tradizionale. Le modifiche all’immagine dovevano essere persistenti: è così?
Quando l’ho letto per la prima volta, pensavo che significasse che tutto fosse salvato nel database. Ma allora il database è all’interno del container? Quindi anche le modifiche al database vengono persistite?
Se è così, come posso assicurarmi che tutte le modifiche vengano salvate se arresto il container e lo riavvio successivamente?
Secondo e molto più importante: come influisce questo sull’aggiornamento a una nuova versione del software del forum?
Da quanto ho letto, sembrava che si utilizzassero le istanze all’interno del container per eseguire aggiornamenti su se stesse. Mi aspettavo invece che venisse distribuita una nuova immagine con gli aggiornamenti e che tutto funzionasse.
Credo che sia principalmente perché sono abituato a trattare le immagini Docker come bestiame: muoiono, vengono sostituite, e non vengono mai mantenute modifiche persistenti all’immagine.
Non sapevo che esistessero immagini Docker che mantengono modifiche persistenti oltre il successivo riavvio.