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/plugins
und Dockerd erkennt sie automatisch.
Das Problem tritt auf, wenn ich versuche, das Plugin in den docker plugin install
Befehl 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 create
Befehl, 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.json
und rootfs
in dem Verzeichnis.
ABER
1. config.json
- Dies ist eine Konfiguration, die .sock
Formatkonfigurationen beschreibt und nicht das .json
Format (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.