Cara 'menginstal plugin docker' untuk plugin berbasis json

9

Saya sedang mengerjakan plugin volume baru dan saya diminta semua tes vol-test untuk lulus. Dan saya memiliki semua tes berhasil lulus (pada lingkungan dengan plugin yang diinstal) kecuali yang pertama, yaitu docker plugin install. Masalahnya adalah ada tiga cara yang memungkinkan seseorang dapat menginstal plugin khusus:

File .sock adalah soket domain UNIX.
File .spec adalah file teks yang berisi URL, seperti unix: ///other.sock atau tcp: // localhost: 8080.
File .json adalah file teks yang berisi spesifikasi json lengkap untuk plugin.

dan kami menggunakan json, yang hanya merupakan server REST yang mengimplementasikan API docker (ditulis dalam java, spring). Proses instalasi untuk itu langsung: cukup salin file json /etc/docker/pluginsdan dockerd secara otomatis menemukannya.
Masalahnya muncul ketika saya mencoba mengintegrasikan plugin ke dalam docker plugin installperintah. Seperti yang dinyatakan di sini :

Docker pertama-tama mencari plugin di host Docker Anda. Jika plugin tidak ada secara lokal, maka plugin ditarik dari registri.

Proses instalasi kami tidak menganggap koneksi ke registri pribadi atau publik, jadi kami perlu docker plugin createperintah pertama untuk membuat plugin secara lokal. Dan di sinilah saya mengalami kesulitan untuk membungkus kepala saya bagaimana melakukannya dengan plugin berbasis json. Sesuai dokumen ini , saya perlu menentukan jalur ke plugin. Jika saya menggunakan nama direktori, ia mengharapkan config.jsondan rootfshadir dalam direktori.

TAPI
1. config.json- ini adalah konfigurasi, yang menjelaskan .sockkonfigurasi format, dan bukan .jsonformatnya (tolong perbaiki saya jika saya salah)
2. bagaimana cara membuat rootfs dan mengapa saya membutuhkannya jika plugin saya hanya REST mandiri. layanan dan bahkan tidak dalam wadah?

Hargai bantuan apa pun.

Vic K
sumber

Jawaban:

-1

config.json - ini adalah config, yang menjelaskan konfigurasi format .sock, dan bukan format .json (tolong perbaiki saya jika saya salah)

Saya telah memverifikasi itu bekerja dengan file .spec, tidak begitu yakin bagaimana ini bekerja dengan file json Untuk file .spec, Anda tidak menyebutkan file .spec di config.json. Itu hanya digunakan untuk plugin soket unix (opsi 1). Infact tidak perlu memiliki config.json untuk plugins socket TCP.

bagaimana cara membuat rootfs dan mengapa saya membutuhkannya jika plugin saya hanyalah layanan REST mandiri dan bahkan tidak ada dalam wadah?

Dalam pemahaman saya, rootfs hanya untuk plugins unix socket. Penemuan plugin berfungsi di luar kotak jika file .spec ada di folder kanan. Singkatnya, Anda hanya membuat file spesifikasi dan meletakkannya di folder penemuan yang tepat dan mencoba untuk bootstrap wadah dengan nama plugin itu. Anda tidak harus menjalankan perintah seperti "docker plugin create / install / enable". Anda menjalankan server, meletakkan file di folder kanan dan membiarkan wadah baru menggunakan plugin itu.

Rajul Mittal
sumber