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/plugins
et dockerd le découvre automatiquement.
Le problème survient lorsque j'essaie d'intégrer le plugin dans la docker plugin install
commande. 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 create
commande 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.json
et rootfs
d'être présent dans le répertoire.
MAIS
1. config.json
- ceci est une configuration, qui décrit les configurations de .sock
format, et non le .json
format (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.