Come 'installare il plugin docker' per plugin basati su json


9

Sto lavorando a un nuovissimo plug-in di volume e mi viene richiesto di superare tutti i test vol-test . E ho superato con successo tutti i test (su un ambiente con plugin installato) tranne il primo, che è docker plugin install. Il fatto è che ci sono tre possibili modi in cui è possibile installare un plug-in personalizzato:

I file .sock sono socket di dominio UNIX.
I file .spec sono file di testo contenenti un URL, come unix: ///other.sock o tcp: // localhost: 8080.
I file .json sono file di testo contenenti una specifica json completa per il plugin.

e usiamo json, che è semplicemente un server REST che implementa l'API docker (scritto in java, primavera). Il processo di installazione è semplice: basta copiare il file json /etc/docker/pluginse dockerd lo scopre automaticamente.
Il problema si presenta quando provo a integrare il plugin nel docker plugin installcomando. Come indicato qui :

Docker cerca innanzitutto il plug-in sull'host Docker. Se il plug-in non esiste localmente, il plug-in viene estratto dal registro.

Il nostro processo di installazione non presuppone una connessione a un registro privato o pubblico, quindi abbiamo bisogno del primo docker plugin createcomando per creare il plugin localmente. Ed è qui che faccio fatica a pensare a come farlo con un plugin basato su JSON. Secondo questo documento, devo specificare un percorso per il plugin. Se uso un nome di directory, si aspetta config.jsonche rootfssia presente nella directory.

MA
1. config.json- questa è una configurazione che descrive le configurazioni del .sockformato e non il .jsonformato (per favore correggimi se sbaglio)
2. Come faccio a creare i rootfs e perché ne ho bisogno se il mio plugin è solo un REST autonomo servizio e non è nemmeno nel contenitore?

Apprezzo qualsiasi aiuto.

Risposte:


-1

config.json - questa è una configurazione che descrive le configurazioni del formato .sock e non il formato .json (per favore correggimi se sbaglio)

L'ho verificato lavorando con i file .spec, ma non sono sicuro di come funzioni con i file json. Per i file .spec, non menzioni i file .spec in config.json. Viene utilizzato solo per i plugin socket unix (opzione 1). Infatti non è necessario avere config.json per i plugin socket TCP.

come faccio a creare i rootfs e perché ne ho bisogno se il mio plugin è solo un servizio REST autonomo e non è nemmeno nel contenitore?

A mio avviso, rootfs è solo per plugin socket unix. Il plug-in di rilevamento funziona immediatamente se esistono file .spec nella cartella corretta. In poche parole, basta creare il file spec e inserirlo nella cartella di individuazione corretta e provare a avviare il contenitore con il nome del plug-in. Non è necessario eseguire comandi come "plug-in docker create / install / enable". Esegui il server, metti il ​​file nella cartella giusta e permetti ai nuovi contenitori di usare quel plugin.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.