Ich arbeite an einem brandneuen Volume-Plugin und muss alle Vol-Test- Tests bestehen. Und ich habe alle Tests erfolgreich bestanden (in einer Umgebung mit installiertem Plugin), mit Ausnahme des ersten docker plugin install. Die Sache ist, dass es drei Möglichkeiten gibt, ein benutzerdefiniertes Plugin zu installieren:
Sock-Dateien sind UNIX-Domain-Sockets.
.spec-Dateien sind Textdateien, die eine URL enthalten, z. B. unix: ///other.sock oder tcp: // localhost: 8080.
.json-Dateien sind Textdateien, die eine vollständige json-Spezifikation für das Plugin enthalten.
und wir verwenden json, einen einfachen REST-Server, der die Docker-API implementiert (geschrieben in Java, Spring). Der Installationsprozess dafür ist unkompliziert: Kopieren Sie einfach die JSON-Datei /etc/docker/pluginsund Dockerd erkennt sie automatisch.
Das Problem tritt auf, wenn ich versuche, das Plugin in den docker plugin installBefehl zu integrieren . Wie hier angegeben :
Docker sucht zuerst nach dem Plugin auf Ihrem Docker-Host. Wenn das Plugin lokal nicht vorhanden ist, wird das Plugin aus der Registrierung abgerufen.
Unser Installationsprozess setzt keine Verbindung zu einer privaten oder öffentlichen Registrierung voraus, daher benötigen wir den ersten docker plugin createBefehl, um das Plugin lokal zu erstellen. Und hier fällt es mir schwer, mich mit dem json-basierten Plugin zu beschäftigen. Gemäß diesem Dokument muss ich einen Pfad zum Plugin angeben. Wenn ich einen Verzeichnisnamen verwenden , es erwartet config.jsonund rootfsin dem Verzeichnis.
ABER
1. config.json- Dies ist eine Konfiguration, die .sockFormatkonfigurationen beschreibt und nicht das .jsonFormat (bitte korrigieren Sie mich, wenn ich falsch
liege ). 2. Wie erstelle ich die Rootfs und warum brauche ich sie, wenn mein Plugin nur ein eigenständiger REST ist Service und es ist nicht einmal im Container?
Schätzen Sie jede Hilfe.