Dockerize applicazioni Python

Creare applicazioni Python e permettere l'esecuzione all'interno di container Docker.

il
Sviluppatore e Trainer, Collaboratore di IProgrammatori

In questo articolo vedremo con un linguaggio semplice l'automazione di semplici script per automatizzare delle immagini Docker per utilizzare:

  • il linguaggio Python all'interno di un immagine Docker
  • eseguire applicazioni personalizzate utilizzando sempre immagini Docker

Qualsiasi automatismo in Python dovessimo implementare all'interno di questa piattaforma, ci serve strumentalmente Docker Desktop da installare prendendo il codebase dall'url Get Docker

In tutti questi scenari dovremmo sempre creare dei semplici file Docker senza estensione. Potremmo utilizzare il blocco notes di Windows oppure opportune applicazioni in ambiente Linux, perchè sarà possibile utilizzare ambienti diversi da Windows per l'installazione di questa piattaforma.

Apriamo una console dei comandi con alti privilegi, come da illustrazione grafica. Dovremmo dapprima creare una cartella dal nome iprogr-labArt

Adesso creiamo un file DockerFile utilizzando il comando copy con DockerFile e poi alla fine dell'ultima riga digitiamo ^Z e premiamo Enter della tastiera.

Digitiamo come step successivo l'esecuzione dello script con il comando Docker build ., come da illustrazione grafica:

L'esecuzione dello script genera un'errore come da illustrazione grafica:

Facciamo l'ipotesi più acclarata che Docker è impostato per eseguire container su sistema operativo Windows e per cui questa immagine va contro i requirements di base. Dall'icona nel system tray di Windows c'è quella di Docker e facendo tasto destro del mouse selezioniamo Passa a container Linux o Switch to Linux containers e ritestiamo il lancio dello scripts. Appare prima una finestra di dialogo tipo:

Clicchiamo sul pulsante Switch e attendiamo l'esecuzione del task e poi potremmo ritestare lo script all'interno della console, come da questa illustrazione grafica:

Lo script DockerFile completo:

Lanciando questo comando avremo un output simile a questo. Può leggermente cambiare l'id dell'immagine generata dalla piattaforma:

Dalla Console dei comandi digitiamo il comando docker images e avremo:

Digiteremo finalmente docker run -it

L'id dell'immagine lo scopriamo digitando il comando docker images che ci riprodurrà la lista di tutte le immagini. Adesso dovremmo produrre un'applicazione in Python, di cui vi fornisco lo script completo e virtualizzarla in un immagine di Docker. Vi spiegherò di cosa avremmo bisogno.

Intanto abbiamo bisogno di questo file istruzioni DockerFile:

Richiediamo di installare nel contenitore una immagine minimale di Linux e istallando una versione aggiornata di Python; successivamente di creare una cartella con un certo nome settato in una variabile di ambiente.

Digitiamo il commando Docker:

ecco l'output di installazione:

Assegniamo un nome ad esempio lab all'immagine Docker appena creata, ma prima di fare ciò digitiamo il comando Docker images per avere la lista delle immagini e di conseguenza anche l'immagine ID

usciamo da questo container forzando con dei comandi CTRL(^D) o quit

e dobbiamo copiare nel container appena rinominato un file che sta nella cartella che si chiama operazioni.py, di cui vi fornisco completamente lo script:

per copiare un file dall'host al container lab così denominato bisognerà usare il comando docker cp, come da illustrazione grafica:

Eseguito questo comando, dalla Dashboard di Docker abbiamo accesso al container Lab, come si vede da illustrazione grafica:

Ecco come si presenta il container (dapprima nello stato stop):

successivamente avviamo il container con dei pulsanti a comparsa sulla estrema destra della Dashboard semplicemente passando il mouse sul nome del container. Avremo questa immagine:

poi ci basterà di ritornare sul container in stato running e cliccando sull'icona esplora potremmo avviare una shell di linux che vediamo in questa illustrazione grafica finale:

come si può notare lo script è stato copiato nella cartella di lavoro creata con l'immagine Docker attraverso le istruzioni memorizzate nel DockerFile. Con il comando Python seguito dal nome dello script si potrà eseguire lo script e del quale si può anche verificare l'output di esecuzione. Buon divertimento con Docker è una piattaforma che farà parlare molto!!