طريقة سهلة لإزالة علامة من سجل عامل ميناء خاص?

لدي سجل عامل ميناء خاص ، الإصدار 2.6.0 ، يحتوي على عدة إصدارات موسومة على صورة:

foo/bar:1foo/bar:1_keep    (same image as 1)foo/bar:2foo/bar:3foo/bar:latest    (same image as 3)

أريد إزالة علامة واحدة دون إزالة الصورة بالضرورة. لذلك إذا قمت بإزالة العلامة 2 ، فلا بأس من إزالة الصورة لأنه لا شيء آخر يشير إليها. ولكن إذا قمت بإزالة العلامة 1 ، يجب أن تذهب هذه العلامة فقط ، وليس الصورة.

يشير ذلك إلى طلب واجهة برمجة تطبيقات مثل هذا:

DELETE http://repo/v2/foo/bar/tags/1

ولكن هذا يعطيني 404. بدلا من ذلك لا بد لي من حذف البيان ، وهو ما يعني القيام بكل عمل التحقق من أنه ليس قيد الاستخدام من قبل علامة أخرى.

نظرت إلى مصدر https://github.com/fraunhoferfokus/deckschrubber ولا يبدو أنه يزعج نفسه بالتحقق من أنه آمن لإزالة مخطوطة. أنا في عداد المفقودين شيء?

هل هناك طريقة أفضل للقيام بذلك? ان لم, لما لا, وهل من المحتمل أن تكون ثابتة?

يوجد حاليا لا توجد واجهة برمجة تطبيقات لحذف علامة معينة. من الناحية النظرية ، يمكنك دفع بيان جديد (ربما فارغ) إلى علامة موجودة ، ثم حذف ذلك. خلاف ذلك ، ستحتاج إلى تتبع جميع العلامات والبيانات في روتين التنظيف الخاص بك لتحديد ما هو آمن للحذف.


تحديث:

تمت إضافة حذف العلامة إلى الآن 1.0 أوسي التوزيع-المواصفات. مع ذلك, طلب سحب (#3427) تمت الموافقة على التوزيع / التوزيع الذي هو المنبع لصورة التسجيل. حصلت على علامة فارقة في الإصدار 3.0 ، لذلك قد تكون هذه ميزة يتم إضافتها في المستقبل.

كما كنت أعمل على ريجكلينت الذي ينفذ كل من واجهة برمجة تطبيقات حذف العلامة ، ويعود إلى دفع بيان فارغ وحذف ذلك. ل كلي ، ريجكلينت يتضمن ريجكتل التي ستبدو:

regctl tag rm registry:5000/repo:tag