Hoppa till innehållet
Stackship-dokumentation English

ContainerregisterAdministratörerMaskinöversatt

Lagringstid

Hur registrets nattliga rensning och veckovisa skräpsamling avgör vilka avbildningar och cacheposter som tas bort, och inställningarna bakom dem.

Två jobb hindrar registret från att växa obegränsat: Registry-modulens rensning, som avgör vilka avbildningar av appar och funktioner som ska tas bort, och en veckovis skräpsamling, som frigör lagringen som borttaget och inaktuellt innehåll lämnar efter sig.

Rensningen

Rensningen körs varje natt klockan 03:00 UTC. Den arbetar utifrån registrets granskningslogg: varje förråd som har tagit emot en push är en kandidat, och varje distinkt avbildning som pushats dit antingen behålls eller tas bort. Den behåller en avbildning när något av följande gäller:

  1. Den används. Plattformens operator rapporterar, för varje app och funktion, vilka avbildningar dess körande poddar använder — en pinning. Den rapporterar igen efter varje lyckad avstämning av appen eller funktionen, även när ingen podd körs, och varje rapport upphör att gälla efter en timme.
  2. Den är bland de senast pushade — två som standard.
  3. Den pushades nyligen — inom de senaste 90 dagarna som standard.

En app kan åsidosätta de två sista värdena med retention.keepLast och retention.keepForDays på appen. Ett förråd utan någon giltig rapport hoppas över med orsaken no-pin-data: rensningen kan inte bevisa att dess avbildningar är oanvända, så den tar inte bort något där. Det gäller förråd för statiska webbappar, som inte får några pinningar, och förråd för borttagna appar och funktioner, vars sista rapport upphör att gälla en timme efter borttagningen — rensningen tar aldrig bort deras avbildningar. En app eller funktion vars avstämningar har misslyckats i mer än en timme hoppas över på samma sätt.

Varje borttagning registreras i granskningsloggen som delete, med status 202, eller 500 när borttagningen misslyckades. Vid en torrkörning tar rensningen inte bort något och registrerar delete.dryrun, med status 0, för varje avbildning som den skulle ha tagit bort.

Viktigt

I den här versionen hittar rensningen inga pushade avbildningar att bedöma: varje körning rapporterar 0 sedda avbildningar och tar inte bort något, och en förhandsvisning returnerar tomma listor. Tills det ändras frigörs registerlagring bara av skräpsamlingen nedan.

Skräpsamling

CronJobben stackship-registry-gc i stackship-system körs varje söndag klockan 04:00 UTC, efter rensningen. Den:

  1. växlar registret till skrivskyddat läge;
  2. tar bort poster i byggcachen som inte byggts om på 14 dagar;
  3. kör registrets skräpsamling, som tar bort otaggade avbildningar och frigör den lagring som ingen avbildning längre hänvisar till;
  4. växlar tillbaka registret till läs- och skrivläge.

Medan den körs misslyckas pushar, så ett bygge som blir klart under den tiden misslyckas och måste startas igen. Varje växling startar om registret, och medan det startar om misslyckas även hämtningar: en podd som startar just då försöker hämta sin avbildning igen. Om jobbet missar sin starttid med mer än tio minuter hoppar det över den veckan.

Inställningar

Rensningen läser sina inställningar från miljön i driftsättningen module-registry.

Inställning Standard Betydelse
Registry__Retention__Enabled true Om den nattliga rensningen körs över huvud taget
Registry__Retention__DryRun true; installationsprogrammet sätter false Registrera vad som skulle tas bort i stället för att ta bort det
Registry__Retention__SweepCron 0 0 3 * * * När rensningen körs: ett cron-uttryck med sex fält, inklusive sekunder, i UTC
Registry__Retention__DefaultKeepLast 2 Hur många av de senast pushade avbildningarna som behålls
Registry__Retention__DefaultKeepForDays 90 Behåll varje avbildning som pushats inom så många dagar
Registry__AuditRetentionDays 90 Hur många dagar granskningshändelser sparas; 0 tar bort varje händelse vid varje daglig städning

Rensningen känner bara till de pushar som fortfarande finns i granskningsloggen, så en avbildning vars push har fallit ur loggen tas aldrig bort av den.

För att se tidigare körningar, förhandsvisa ett förråd eller starta en körning själv, se Rensningskörningar.