Jak zainstalować wtyczkę dokującą dla wtyczki opartej na Json

9

Pracuję nad zupełnie nową wtyczką woluminu i muszę przejść wszystkie testy vol-test . I pomyślnie przeszedłem wszystkie testy (w środowisku z zainstalowaną wtyczką) oprócz pierwszego, który jest docker plugin install. Chodzi o to, że istnieją trzy możliwe sposoby zainstalowania niestandardowej wtyczki:

Pliki .sock są gniazdami domenowymi UNIX.
Pliki .spec to pliki tekstowe zawierające adres URL, takie jak unix: ///other.sock lub tcp: // localhost: 8080.
Pliki .json to pliki tekstowe zawierające pełną specyfikację json dla wtyczki.

i używamy json, który jest po prostu serwerem REST implementującym API dokera (napisane w Javie, wiosna). Proces instalacji jest prosty: po prostu skopiuj plik /etc/docker/pluginsJson i dokerd automatycznie go wykryje.
Problem pojawia się, gdy próbuję zintegrować wtyczkę z docker plugin installpoleceniem. Jak stwierdzono tutaj :

Docker najpierw szuka wtyczki na hoście Docker. Jeśli wtyczka nie istnieje lokalnie, wtyczka jest pobierana z rejestru.

Nasz proces instalacji nie zakłada połączenia z rejestrem prywatnym lub publicznym, dlatego potrzebujemy pierwszego docker plugin createpolecenia, aby utworzyć wtyczkę lokalnie. I właśnie tutaj trudno mi się pochwycić, jak to zrobić za pomocą wtyczki opartej na Jsonie. Zgodnie z tym dokumentem muszę podać ścieżkę do wtyczki. Jeśli użyję nazwy katalogu, oczekuje config.jsoni rootfsbędzie obecny w katalogu.

ALE
1. config.json- jest to konfiguracja, która opisuje .sockkonfiguracje formatów, a nie .jsonformat (popraw mnie, jeśli się mylę)
2. jak utworzyć rootfs i dlaczego potrzebuję go, jeśli moja wtyczka jest tylko samodzielną REST usługi i nie ma go nawet w pojemniku?

Doceń wszelką pomoc.

Vic K.
źródło

Odpowiedzi:

-1

config.json - jest to konfiguracja, która opisuje konfiguracje w formacie .sock, a nie w formacie .json (popraw mnie, jeśli się mylę)

Sprawdziłem, czy działa z plikami .spec, ale nie jestem pewien, jak to działa z plikami json. W przypadku plików .spec nie wspomina się o plikach .spec w pliku config.json. Jest to używane tylko w przypadku wtyczek z gniazdami unix (opcja 1). W rzeczywistości nie ma potrzeby używania config.json dla wtyczek gniazd TCP.

jak utworzyć rootfs i dlaczego go potrzebuję, jeśli moja wtyczka jest tylko samodzielną usługą REST i nie ma jej nawet w kontenerze?

W moim rozumieniu rootfs dotyczy tylko wtyczek z gniazdami unix. Wykrywanie wtyczek działa natychmiast po wyjęciu z pudełka, jeśli pliki .spec istnieją w odpowiednim folderze. Krótko mówiąc, po prostu tworzysz plik specyfikacji i umieszczasz go w odpowiednim folderze wykrywania i próbujesz załadować kontener o tej nazwie wtyczki. Nie musisz uruchamiać poleceń takich jak „tworzenie / instalowanie / włączanie wtyczki dokującej”. Uruchom serwer, umieść plik we właściwym folderze i pozwól nowym kontenerom korzystać z tej wtyczki.

Rajul Mittal
źródło