From 0248648697e204a47757dbf8f56ed86c25a1a911 Mon Sep 17 00:00:00 2001 From: Alexander Zhirov Date: Fri, 21 Mar 2025 16:57:14 +0300 Subject: [PATCH] update --- README.md | 26 ++++++++++++++++++++++++++ regclean | 36 ++++++++++++++++++++++++++++++------ 2 files changed, 56 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 0c4c7e8..647617b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,29 @@ # Registry Cleaner Очистка локального registry + +``` +Использование: regclean <команда> [аргументы] + +Команды: + get <имя_образа> Получить список тегов для указанного образа в локальном Docker Registry. + Пример: regclean get myimage + + del <имя_образа> <тег> Удалить образ с указанным тегом из локального Docker Registry. + Пример: regclean del myimage 1.0.1 + + clean Очистить ненужные слои (garbage collection) в локальном Docker Registry. + Пример: regclean clean + + help Показать эту справку. + Пример: regclean help + +Требования: + - Локальный реестр должен быть запущен (по умолчанию на http://localhost:5000). + - Для команды 'del' требуется переменная окружения REGISTRY_STORAGE_DELETE_ENABLED=true в реестре. + - Контейнер реестра должен называться 'registry' для команды 'clean'. + +Примечания: + - Убедитесь, что утилиты curl, grep, awk, sed и tr установлены на хосте. + - Измените REGISTRY_URL в скрипте, если ваш реестр работает не на localhost:5000. +``` diff --git a/regclean b/regclean index 94c94bd..af86d91 100755 --- a/regclean +++ b/regclean @@ -5,6 +5,29 @@ REGISTRY_URL="http://localhost:5000" # Имя контейнера реестра (для команды clean) REGISTRY_CONTAINER="registry" +show_help() { + echo "Использование: regclean <команда> [аргументы]" + echo "" + echo "Команды:" + echo " get <имя_образа> Получить список тегов для указанного образа в локальном Docker Registry." + echo " Пример: regclean get myimage" + echo " del <имя_образа> <тег> Удалить образ с указанным тегом из локального Docker Registry." + echo " Пример: regclean del myimage 1.0.1" + echo " clean Очистить ненужные слои (garbage collection) в локальном Docker Registry." + echo " Пример: regclean clean" + echo " help Показать эту справку." + echo " Пример: regclean help" + echo "" + echo "Требования:" + echo " - Локальный реестр должен быть запущен (по умолчанию на http://localhost:5000)." + echo " - Для команды 'del' требуется переменная окружения REGISTRY_STORAGE_DELETE_ENABLED=true в реестре." + echo " - Контейнер реестра должен называться 'registry' для команды 'clean'." + echo "" + echo "Примечания:" + echo " - Убедитесь, что утилиты curl, grep, awk, sed и tr установлены на хосте." + echo " - Измените REGISTRY_URL в скрипте, если ваш реестр работает не на localhost:5000." +} + check_registry() { if ! docker ps | grep -q "$REGISTRY_CONTAINER"; then echo "Ошибка: контейнер реестра '$REGISTRY_CONTAINER' не запущен." @@ -15,7 +38,7 @@ check_registry() { get_tags() { local image_name="$1" if [ -z "$image_name" ]; then - echo "Ошибка: укажите имя образа (например, ./script.sh get astra-docker)" + echo "Ошибка: укажите имя образа (например, regclean get myimage)" exit 1 fi @@ -40,7 +63,7 @@ delete_image() { local tag="$2" if [ -z "$image_name" ] || [ -z "$tag" ]; then - echo "Ошибка: укажите имя образа и тег (например, ./script.sh del astra-docker 1.7.25080.1522)" + echo "Ошибка: укажите имя образа и тег (например, regclean del myimage 1.0.1)" exit 1 fi @@ -84,11 +107,12 @@ case "$1" in "clean") clean_registry ;; + "help"|"") + show_help + ;; *) - echo "Использование:" - echo " ./script.sh get <имя_образа> - получить список тегов" - echo " ./script.sh del <имя_образа> <тег> - удалить образ с указанным тегом" - echo " ./script.sh clean - очистить ненужные слои" + echo "Неизвестная команда: $1" + show_help exit 1 ;; esac