Métadonnées des extensions
Le fichier metadata.json
Le fichier metadata.json
est le point d'entrée de votre extension. Il contient les métadonnées pour votre extension, comme le nom, la version et la description. Il contient également les informations nécessaires pour construire et exécuter votre extension. L'image d'une extension Docker doit inclure un fichier metadata.json
à la racine de son système de fichiers.
Le format du fichier metadata.json
doit être :
{
"icon": "extension-icon.svg",
"ui": ...
"vm": ...
"host": ...
}
Les sections ui
, vm
, et host
sont optionnelles et dépendent de ce qu'une extension donnée fournit. Elles décrivent le contenu de l'extension à installer.
Section UI
La section ui
définit un nouvel onglet qui est ajouté au tableau de bord dans Docker Desktop. Elle suit la forme :
"ui":{
"dashboard-tab":
{
"title":"MonTitre",
"root":"/ui",
"src":"index.html"
}
}
root
spécifie le dossier où se trouve le code UI dans le système de fichiers de l'image d'extension.
src
spécifie le point d'entrée qui doit être chargé dans l'onglet d'extension.
D'autres points d'extension UI seront disponibles à l'avenir.
Section VM
La section vm
définit un service backend qui s'exécute à l'intérieur de la VM Desktop. Elle doit définir soit une image
soit un fichier compose.yaml
qui spécifie quel service exécuter dans la VM Desktop.
"vm": {
"image":"${DESKTOP_PLUGIN_IMAGE}"
},
Quand vous utilisez image
, un fichier compose par défaut est généré pour l'extension.
${DESKTOP_PLUGIN_IMAGE}
est un mot-clé spécifique qui permet une façon facile de faire référence à l'image packagant l'extension. Il est également possible de spécifier tout autre nom d'image complet ici. Cependant, dans de nombreux cas, utiliser la même image rend les choses plus faciles pour le développement d'extension.
"vm": {
"composefile": "compose.yaml"
},
Le fichier Compose, avec une définition de volume par exemple, ressemblerait à :
services:
myExtension:
image: ${DESKTOP_PLUGIN_IMAGE}
volumes:
- /host/path:/container/path
Section Host
La section host
définit les exécutables que Docker Desktop copie sur l'hôte.
"host": {
"binaries": [
{
"darwin": [
{
"path": "/darwin/myBinary"
},
],
"windows": [
{
"path": "/windows/myBinary.exe"
},
],
"linux": [
{
"path": "/linux/myBinary"
},
]
}
]
}
binaries
définit une liste de binaires que Docker Desktop copie de l'image d'extension vers l'hôte.
path
spécifie le chemin du binaire dans le système de fichiers de l'image. Docker Desktop est responsable de copier ces fichiers dans son propre emplacement, et l'API JavaScript permet d'invoquer ces binaires.
Apprenez comment invoquer les exécutables.