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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Miglioramenti nelle performance di Angular 16
Usare una container image come runner di GitHub Actions
Creare un webhook in Azure DevOps
Utilizzare un service principal per accedere a Azure Container Registry
Eseguire una query su SQL Azure tramite un workflow di GitHub
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
C# 12: Cosa c'è di nuovo e interessante
Come migrare da una form non tipizzata a una form tipizzata in Angular
Disabilitare automaticamente un workflow di GitHub (parte 2)
Recuperare l'ultima versione di una release di GitHub
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
I più letti di oggi
- Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
- Creare una libreria CSS universale: Cards
- Eseguire script pre e post esecuzione di un workflow di GitHub