Azure Container Registry (ACR) è un servizio di Azure che consente di archiviare, gestire e distribuire immagini di container Docker in modo sicuro e affidabile. Questo servizio fornisce un registro privato per la gestione delle immagini dei container, in modo che le organizzazioni possano creare, archiviare e distribuire le proprie immagini Docker in modo rapido e scalabile. È particolarmente utile per le organizzazioni che lavorano con una grande quantità di container, in quanto semplifica la distribuzione e la gestione degli stessi.
Tuttavia, la gestione delle immagini di container può richiedere una grande quantità di spazio di archiviazione. Per limitare lo spazio occupato dai repository, ACR fornisce funzionalità di pulizia dell'immagine e gestione della conservazione automatica attraverso il piano premium come abbiamo già visto nello script https://www.cloudnativeitalia.com/script/230/Eliminare-Spazio-Inutilizzato-Azure-Container-Registry.aspx.
In questo script proponiamo un'alternativa basata su bash e Azure CLI, particolarmente indicata per essere lanciata automaticamente nelle pipeline di build e di rilascio, attraverso GitHub o Azure DevOps, senza la necessità di avere un piano speciale di ACR. L'idea è quella di sfogliare tutti i repository di un registro e di eliminare tutti i tag più vecchi di 30 giorni.
# imposta il nome del registro ACR_NAME=industria4 # imposta la data limite (30 giorni) DATE_THRESHOLD=$(date -u -d "-30 days" +%Y-%m-%dT%H:%M:%SZ) # recupera la lista dei repository REPO_LIST=$(az acr repository list --name $ACR_NAME --output tsv) # cicla su tutti i repository for REPO_NAME in $REPO_LIST; do # recupera la lista dei tag TAG_LIST=$(az acr repository show-manifests --name $ACR_NAME --repository $REPO_NAME --query "[?timestamp < '$DATE_THRESHOLD'].tags" --orderby time_desc --output tsv) # cicla su tutti i tag for TAG in $TAG_LIST; do # escludo il tag che contiene latest if [[ $TAG != *"latest"* ]]; then # cancello il tag az acr repository delete --name $ACR_NAME --image $REPO_NAME:$TAG --yes echo "Deleted tag $TAG for repository $REPO_NAME" else echo "Skipped tag $TAG for repository $REPO_NAME" fi done done
Lo script è commentato in ogni sua parte e salta automaticamente il tag latest in modo da lasciare sempre il tag principale.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Modernizzare le applicazioni WPF e Windows Forms con Blazor
Evitare la command injection in un workflow di GitHub
Effettuare chiamate con versioning da Blazor ad ASP.NET Core
Leggere e scrivere su cookie tramite Blazor
Eseguire operazioni con timeout in React
Filtrare e rimuovere gli elementi dalla cache del browser tramite le API JavaScript
Effettuare test di carico con Azure Load Testing
Copiare automaticamente le secret tra più repository di GitHub
Trasformare qualsiasi backend in un servizio GraphQL con Azure API Management
Ricevere avvisi su metriche dei server Azure Arc
Impostare il forward degli header in un sito ASP.NET Core dietro a un reverse proxy
Migrare un repository che contiene large file storage objects in GitHub
I più letti di oggi
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- .NET Conference Italia 2022 - Milano e Online