Blog

Genropy e Docker: come creare le immagini degli applicativi

Con il rilascio della versione 25.04.10 di Genropy è stato introdotto uno strumento di utilità per la generazione di immagini Docker. Grazie a questo nuovo strumento, è possibile creare un’immagine dell’applicativo e di tutto il necessario per poterla eseguire (package, librerie, e Genropy stesso), senza bisogno di installazioni manuali o configurazioni complesse.

Significa che da oggi abbiamo a disposizione un modo semplice e ripetibile per creare container pronti al deploy, anche automatizzabili in pipeline CI/CD.

Vediamo quindi come creare in pochi semplici passaggi un’immagine Docker di un progetto.


Creiamo insieme l’immagine Docker di Sandbox

Per creare l’immagine Docker di un progetto qualsiasi, a titolo di esempio Sandbox, è sufficiente lanciare il comando:

gnr app dockerize sandboxpg

e il tool di creazione dell’immagine provvederà a leggere l’instanceconfig dell’istanza, recuperare i repository git necessari e costruire l’immagine con all’interno tutto l’ambiente di lavoro pronto all’uso.


L’immagine è pronta ma per essere eseguita necessita di alcune variabili di ambiente che possono essere specificate o al momento del lancio (ma sono tante, quindi potrebbe essere poco agevole) o in un file di configurazione. Una volta creato il file l’istanza può essere avviata con il comando:

docker run --env-file sandboxpg.env -p 8888:8888 sandboxpg

dove sandboxpg.env è il nome del file di configurazione e sandboxpg il nome dell’immagine.

N.B. Sia il nome del file di configurazione che quello dell’istanza sono totalmente liberi, abbiamo messo questi a titolo di esempio

Per ulteriori dettagli sul funzionamento della dockerization di Genropy rimandiamo alla documentazione dedicata sul Manuale d’installazione.


Consigli utili per la generazione delle immagini

La procedura mostrata fino a questo momento è quella standard, dove quindi si lascia al tool di creazione dell’immagine l’onere di generare il file build.xml contenente le istruzioni per la generazione del pacchetto. Ma come mostrato nel video il file può essere personalizzato, si può per esempio specificare un *commit* o un *branch* specifico per uno o più repository, questo può per esempio essere particolarmente utile per portarsi a una situazione molto specifica a scopo di debug.

O ancora, all’esecuzione o anche nel file di configurazione è possibile impostare un GNR_LOGLEVEL (“info”, “error”, “debug”) per avere più o meno informazioni nel terminale riguardo a quello che succede nell’applicativo. Inoltre, l’inspect aiuta a ricostruire nel dettaglio che cosa è contenuto nell’immagine, in che ramo/commit è ciascun repository, quando è stata creata, ecc.

Infine, per andare in produzione si consiglia di pubblicare l’immagine su un archivio remoto («Docker registry»), così da rendere disponibile l’immagine per il server.


Prova subito l’immagine di Sandbox che abbiamo creato sulla tua macchina!

oppure, da linea di comando:

docker pull ghcr.io/genropy/sandbox:develop

Curiosità, dubbi, domande? Ci trovi come sempre su AskGenropy!