Integrare dive nelle pipeline di Azure DevOps e GitHub

di Matteo Tumiati, in DevOps,

Settimana scorsa abbiamo scoperto l'esistenza e il funzionamento del tool chiamato dive per poter analizzare i singoli layer di cui è composta una determinata immagine di Docker. Il funzionamento di questo sistema, però, potrebbe estendersi ancora e potrebbe essere integrato con un sistema di CI/CD qualsiasi.

Ogni immagine che viene analizzata con dive, infatti, viene anche scannerizzata per capire:

  • la grandezza dell'immagine;
  • la quantità di oggetti (intesi in termini di spazio su disco) che è potenzialmente possibile eliminare;
  • l'indice (stimato) di efficienza/ottimizzazione dell'immagine espressa in punti percentuali.

Tecnicamente è quindi possibile eseguire un comando simile al seguente (supponendo di usare PowerShell):

$env:CI=$True; dive aspitalia --lowestEfficiency 0.99

Come prima cosa abbiamo impostato la variabile d'ambiente CI al valore true. Così facendo, i parametri di input passati oltre al nome dell'immagine verranno effettivamente valutati e di conseguenza anzichè aprirsi la UI, come abbiamo visto nello script precedente, il tool uscirà con uno status code indicante il successo/fallimento del comando richiesto.

In questo caso specifico, stiamo chiedendo a dive di impostare come valore minimo di efficienza stimata il 99%. Qualsiasi valore al di sotto di quella soglia, causerà un fallimento del comando stesso:


Questa serie di comandi, impostati secondi determinati valori di riferimento, ha senso che vengano applicati in un sistema di CI/CD (indipendentemente dal fatto che sia Azure DevOps Pipelines, GitHub Actions o altro) per incrementare i livelli di sicurezza e, ad esempio, far fallire pull request che non rispettano questi standard.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi