Infrastruttura
L'idea dietro Infrastructure è di strutturare, salvare e mantenere sotto configuration control in un repository facilmente deoployable tutto quello che è definibile come configuration as code, con i relativi script di installazione e operatività.
Git repository Infrastructure
Il repository Infrastructure è così organizzato:
-
nella root si trovano i file essenziali per configurare, installare e controllare i vari servizi.
-
nella directory
servicessono presenti varie sottodirectory, una per ciascun servizio funzionante, operabile e attivo; -
nella directory
stagingsono presenti varie sottodirectory, una per ciascun servizio funzonante, operabile ma momentaneamente non attivi; -
nella directory
testingsono presenti varie sottodirectory, una per ciascun servizio ancora in testing, non pienamente funzionante; -
nella directory
scriptssono presenti vari script per backup e sincronizzazioni di vario tipo e anche lo scriptdo, usato per interagire con i singoli servizi come meglio spiegato nella pagina dedicata. -
nella directory
templatessono presenti i template di filedocker-compose.ymlche di fatto sono comuni e quindi condivisibili tra vari servizi (ad es. i blog wordpress della galassia ISAA).
Configurazione di un servizio in Infrastructure
La configurazione standard di ogni servizio, e quindi il contenuto atteso in ciascuna delle directory in services, staging e testing, è composta da almeno due file:
-
.env, contenente le variabili di ambiente necessarie alla specifica istaanza da gestire; -
docker_compose.yml, con la configurazione richieste per il container docker del servizio.
Ove possibile, quando i servizi sono creati con container sostanzialmente identici, il file docker_compose.yml del servizio è un softlink al template contenuto in infrastructure/templates, dato che i dettagli sono specificati nel file .env del servizio.
Deployment e Installazione di Infrastructure
Si raccomanda di clonare il repository direttamente nella root della VM. Ulteriori dettagli si trovano nella pagina dedicata.
Git repository Wordpress_ISAA
Il repository contiene il Dockerfile per la creazione di container basati su Apache2 + Wordpress, derivante dal progetto visiblevc/wordpress_starter ormai abandonware.
Il progetto è stato ampiamente rivisto, e aggiornato alla versione 8.4 di php.
La directory Persistent
Nella directory /persistent sono conservati tutti i file che si vogliono persistenti tra sessioni di esecuzione dei vari servizi.
La struttura di /persistent è estremamente semplice: vi si trovano svariate sottodirectory, una per ciascun servizio. Il file docker-compose.yml di ciascun servizio monta come volume la sua directory in /persistent al momento dello startup.