Як "встановити плагін докер" для плагіна на основі json


9

Я працюю над абсолютно новим плагін-томом, і мені потрібно пройти всі тести vol-test . І всі тести успішно пройшли (у середовищі із встановленим плагіном), крім першого, який є docker plugin install. Вся справа в тому, що є три можливі способи встановлення користувацького плагіна:

Файли .sock - це розетки домену UNIX.
Файли .spec - це текстові файли, що містять URL-адресу, наприклад unix: ///other.sock або tcp: // localhost: 8080.
Файли .json - це текстові файли, що містять повну специфікацію json для плагіна.

і ми використовуємо json, який просто REST-сервер, що реалізує API докера (написано в java, spring). Процес установки для нього прямо вперед: просто скопіюйте файл json /etc/docker/pluginsі докерд автоматично його виявить.
Проблема виникає, коли я намагаюся інтегрувати плагін у docker plugin installкоманду. Як зазначено тут :

Docker спочатку шукає плагін вашого хокера Docker. Якщо плагін не існує локально, то плагін витягується з реєстру.

Наш процес встановлення не передбачає підключення до приватного чи публічного реєстру, тому нам потрібна перша docker plugin createкоманда, щоб створити плагін локально. І саме тут мені важко обернути голову, як це зробити за допомогою плагіна на основі json. Відповідно до цього документа, мені потрібно вказати шлях до плагіна. Якщо я використовую ім'я каталогу, воно очікує config.jsonі rootfsбуде присутнє в каталозі.

АЛЕ
1. config.json- це конфігурація, яка описує конфігурації .sockформату, а не .jsonформат (будь ласка, виправте мене, якщо я помиляюся)
2. як створити rootfs і навіщо мені це потрібно, якщо мій плагін - це просто окремий REST сервіс і його навіть немає в контейнері?

Вдячний за будь-яку допомогу.

Відповіді:


-1

config.json - це конфігурація, яка описує конфігурації формату .sock, а не формат .json (будь ласка, виправте мене, якщо я помиляюся)

Я перевірив це, працюючи з .spec файлами, але не дуже впевнений, як це працює з файлами json. Для файлів .spec ви не згадуєте файли .spec у config.json. Це використовується лише для плагінів unix socket (опція 1). Infact немає необхідності мати config.json для плагінів сокетів TCP.

як мені створити rootfs і навіщо мені це потрібно, якщо мій плагін - це лише автономна служба REST, і вона навіть не є в контейнері?

На моє розуміння, rootfs призначений тільки для плагінів unix socket. Виявлення плагінів працює з вікна, якщо .spec файли існують у правій папці. Коротше кажучи, ви просто створите файл специфікації і помістите його в потрібну папку відкриття і спробуйте завантажувати контейнер з цим іменем плагіна. Вам не потрібно запускати команди типу "плагін docker create / install / enable". Ви запускаєте сервер, поміщаєте файл у праву папку і дозволяєте новим контейнерам використовувати цей плагін.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.