Метаданные расширения

Файл метаданных.json

Файл metadata.json — это точка входа для вашего расширения. Он содержит метаданные для вашего расширения, такие как имя, версия и описание. Он также содержит информацию, необходимую для создания и запуска вашего расширения. Образ для расширения Docker должен включать файл metadata.json в корне своей файловой системы.

Формат файла metadata.json должен быть:

{
    "icon": "extension-icon.svg",
    "ui": ...
    "vm": ...
    "host": ...
}

Разделы ui, vm и host являются необязательными и зависят от того, что предоставляет данное расширение. Они описывают содержимое расширения, которое необходимо установить.

раздел пользовательского интерфейса

Раздел ui определяет новую вкладку, которая добавляется на панель управления в Docker Desktop. Он следует форме:

"ui":{
    "dashboard-tab":
    {
        "title":"MyTitle",
        "root":"/ui",
        "src":"index.html"
    }
}

root указывает папку, в которой код пользовательского интерфейса находится в файловой системе образа расширения. src указывает точку входа, которую следует загружает на вкладке расширения.

Другие точки расширения пользовательского интерфейса будут доступны в будущем.

Раздел ВМ

Раздел vm определяет серверную службу, которая работает внутри виртуальной машины рабочего стола. Он должен определять значение image или composefile, указывающее, какую службу запускать на виртуальной машине рабочего стола.

"vm": {
    "image":"${DESKTOP_PLUGIN_IMAGE}"
},

При использовании image для расширения создаётся файл compose по умолчанию.

${DESKTOP_PLUGIN_IMAGE} — это специальное ключевой аргумент, которое позволяет легко ссылаться на образ, упаковывающее расширение. Также здесь можно указывает любое другое полное имя образа. Однако во многих случаях использование одного и того же образа упрощает разработку расширений.

"vm": {
    "composefile": "docker-compose.yaml"
},

Например, файл Compose с определением тома будет выглядеть так:

services:
  myExtension:
    image: ${DESKTOP_PLUGIN_IMAGE}
    volumes:
      - /host/path:/container/path

Хост раздел

Раздел host определяет исполняемые файлы, которые Docker Desktop копирует на хост.

"host": {
    "binaries": [
      {
        "darwin": [
          {
            "path": "/darwin/myBinary"
          },
        ],
        "windows": [
          {
            "path": "/windows/myBinary.exe"
          },
        ],
        "linux": [
          {
            "path": "/linux/myBinary"
          },
        ]
      }
    ]
  }

binaries определяет список двоичных файлов, которые Docker Desktop копирует из образа расширения на хост.

path указывает двоичный путь в файловой системе образа. Docker Desktop отвечает за копирование данных файлов в свое собственное местоположение, а JavaScript API позволяет вызывать данные двоичные файлы.

Узнайте, как вызывать исполняемые файлы.