Мусор

В то время как команды docker build prune или docker buildx prune выполняются одновременно, сборка мусора выполняется периодически и следует упорядоченному списку политик обрезки.

Сборка мусора выполняется демоном BuildKit. Демон очищает кэш сборки, когда размер кэша становится слишком большим или когда истекает возраст кэша. В следующих разделах приведено, как можно настроить параметры размера и возраста, определив политики сборки мусора.

Конфигурация

В зависимости от драйвер, используемого вашим экземпляром конструктора, сборка мусора будет использовать другой конфигурационный файл.

Если вы используете драйвер Docker, сборка мусора может быть настроена в файле Конфигурация демона Docker:

{
  "builder": {
    "gc": {
      "enabled": true,
      "defaultKeepStorage": "10GB",
      "policy": [
          {"keepStorage": "10GB", "filter": ["unused-for=2200h"]},
          {"keepStorage": "50GB", "filter": ["unused-for=3300h"]},
          {"keepStorage": "100GB", "all": true}
      ]
    }
  }
}

Для других драйверов сборка мусора может быть настроена с помощью файла Конфигурация BuildKit:

[worker.oci]
  gc = true
  gckeepstorage = 10000
  [[worker.oci.gcpolicy]]
    keepBytes = 512000000
    keepDuration = 172800
    filters = [ "type==source.local", "type==exec.cachemount", "type==source.git.checkout"]
  [[worker.oci.gcpolicy]]
    all = true
    keepBytes = 1024000000

Политики по умолчанию

Политики сборки мусора по умолчанию применяются ко всем строителям, если они ещё не установлены:

GC Policy rule#0:
        All:            false
        Filters:        type==source.local,type==exec.cachemount,type==source.git.checkout
        Keep Duration:  48h0m0s
        Keep Bytes:     512MB
GC Policy rule#1:
        All:            false
        Keep Duration:  1440h0m0s
        Keep Bytes:     26GB
GC Policy rule#2:
        All:            false
        Keep Bytes:     26GB
GC Policy rule#3:
        All:            true
        Keep Bytes:     26GB
  • rule#0: если кэш сборки использует более 512 МБ, удаляет наиболее легко воспроизводимые данные после того, как они не использовались в течение 2 дней.

  • rule#1: удаляет все данные, которые не использовались в течение 60 дней.

  • rule#2: держать неразделяемый кэш сборки под лимитом.

  • rule#3: если предыдущие политики были недостаточны, начать удалять внутренние данные, чтобы сохраняет кэш сборки под лимитом.

    Примечание

    «Хранить байты» по умолчанию составляет 10% от размера диска. Если размер диска не может быть определён, по умолчанию устанавливается значение 2 ГБ.