Comment installer le plugin Docker pour un plugin basé sur JSON

9

Je travaille sur un tout nouveau plugin de volume et je dois passer tous les tests vol-test . Et j'ai réussi tous les tests (sur un environnement avec plugin installé) sauf le premier, qui l'est docker plugin install. Le fait est qu'il existe trois façons possibles d'installer un plugin personnalisé:

Les fichiers .sock sont des sockets de domaine UNIX.
Les fichiers .spec sont des fichiers texte contenant une URL, tels que unix: ///other.sock ou tcp: // localhost: 8080.
Les fichiers .json sont des fichiers texte contenant une spécification json complète pour le plugin.

et nous utilisons json, qui est simplement un serveur REST implémentant une API docker (écrit en java, spring). Le processus d'installation est simple: copiez simplement le fichier json dans /etc/docker/pluginset dockerd le découvre automatiquement.
Le problème survient lorsque j'essaie d'intégrer le plugin dans la docker plugin installcommande. Comme il est indiqué ici :

Docker recherche d'abord le plugin sur votre hôte Docker. Si le plugin n'existe pas localement, alors le plugin est extrait du registre.

Notre processus d'installation ne suppose pas de connexion à un registre privé ou public, nous avons donc besoin d'une première docker plugin createcommande pour créer le plugin localement. Et c'est là que j'ai du mal à comprendre comment faire cela avec un plugin basé sur json. Selon ce document, je dois spécifier un chemin vers le plugin. Si j'utilise un nom de répertoire , il attend config.jsonet rootfsd'être présent dans le répertoire.

MAIS
1. config.json- ceci est une configuration, qui décrit les configurations de .sockformat, et non le .jsonformat (veuillez me corriger si je me trompe)
2. comment créer les rootfs et pourquoi en ai-je besoin si mon plugin est juste un REST autonome service et ce n'est même pas dans le conteneur?

Appréciez toute aide.

Vic K
la source

Réponses:

-1

config.json - ceci est une config, qui décrit les configurations du format .sock, et non le format .json (veuillez me corriger si je me trompe)

J'ai vérifié qu'il fonctionnait avec des fichiers .spec, mais je ne sais pas très bien comment cela fonctionne avec les fichiers json. Pour les fichiers .spec, vous ne mentionnez pas les fichiers .spec dans config.json. Ceci est utilisé uniquement pour les plugins socket Unix (option 1). En fait, il n'est pas nécessaire d'avoir config.json pour les plugins de socket TCP.

comment créer les rootfs et pourquoi en ai-je besoin si mon plugin est juste un service REST autonome et qu'il n'est même pas dans le conteneur?

À ma connaissance, rootfs n'est destiné qu'aux plugins socket Unix. La découverte de plug-in fonctionne dès la sortie de l'emballage si des fichiers .spec existent dans le bon dossier. En bref, vous venez de créer un fichier de spécifications, de le placer dans le bon dossier de découverte et d'essayer d'amorcer le conteneur avec ce nom de plugin. Vous n'avez pas besoin d'exécuter des commandes telles que "créer / installer / activer le plugin docker". Vous exécutez le serveur, placez le fichier dans le bon dossier et laissez les nouveaux conteneurs utiliser ce plugin.

Rajul Mittal
la source