Questo esercizio guida alla configurazione di una pipeline CI/CD utilizzando Jenkins, Docker e una semplice applicazione Flask. La pipeline consente di costruire, taggare e pubblicare un'immagine Docker su Docker Hub. Inoltre, viene spiegato come eseguire manualmente l'immagine per verificare che l'applicazione funzioni.
- L'ambiente VM creato nello Step 1.
- Accesso a un account GitHub e Docker Hub.
- Un repository GitHub con il file
Jenkinsfile
e il codice dell'applicazione (come formazione_sou_k8s).
-
Entra nel container Jenkins Slave con privilegi sudo:
sudo docker exec --user root -it jenkins_slave bash
-
Aggiorna i pacchetti e installa Docker:
apt-get update && apt-get install -y docker.io
-
Esci dal container:
exit
- Vai su Gestisci Jenkins > Credenziali > System > Credenziali globali.
- Clicca su Add Credentials e aggiungi:
- ID github_credentials: i tuoi nome utente e password di GitHub.
- ID dockerhub_credentials: i tuoi nome utente e password di Docker Hub.
- Forka o utilizza il repository formazione_sou_k8s.
- Crea una release su GitHub con il tag v1.0:
- Vai su Releases > Create a new release.
- Inserisci v1.0 come tag e pubblica.
- Crea un nuovo elemento pipeline sulla dashboard di Jenkins e chiamalo flask-app-example-build.
- Configura l'elemento per utilizzare il repository GitHub:
- Inserisci come URL di Deposito il link del repository GitHub.
- Usa le credenziali github_credentials configurate in precedenza.
- Come Ramo indicare */main.
- Salva e avvia la pipeline.
Se la pipeline è configurata correttamente, verrà:
- Clonato il repository.
- Creata un’immagine Docker taggata come lucacisotto/flask-app-example:v1.0.
- L’immagine verrà pushata su Docker Hub.
-
Sul tuo computer, effettua il pull dell’immagine da Docker Hub:
sudo docker pull lucacisotto/flask-app-example:latest
-
Esegui l’immagine sulla porta 5000:
sudo docker run -p 5000:5000 lucacisotto/flask-app-example:latest
-
Apri un browser e visita http://localhost:5000. Dovresti vedere il messaggio “hello world”.
Ora la pipeline è configurata e l’applicazione è funzionante.