⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

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.