forked from docker/docs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add some plugin manifest reference doc
Signed-off-by: Victor Vieux <[email protected]> (cherry picked from commit 44a16ac) Signed-off-by: Sebastiaan van Stijn <[email protected]>
- Loading branch information
Showing
2 changed files
with
230 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,222 @@ | ||
<!--[metadata]> | ||
+++ | ||
aliases = [ | ||
"/engine/extend/" | ||
] | ||
title = "Plugin manifest" | ||
description = "How develop and use a plugin with the managed plugin system" | ||
keywords = ["API, Usage, plugins, documentation, developer"] | ||
advisory = "experimental" | ||
[menu.main] | ||
parent = "engine_extend" | ||
weight=1 | ||
+++ | ||
<![end-metadata]--> | ||
|
||
# Plugin Manifest Version 0 of Plugin V2 | ||
|
||
This document outlines the format of the V0 plugin manifest. The plugin | ||
manifest described herein was introduced in the Docker daemon (experimental version) in the [v1.12.0 | ||
release](https://github.com/docker/docker/commit/f37117045c5398fd3dca8016ea8ca0cb47e7312b). | ||
|
||
Plugin manifests describe the various constituents of a docker plugin. Plugin | ||
manifests can be serialized to JSON format with the following media types: | ||
|
||
Manifest Type | Media Type | ||
------------- | ------------- | ||
manifest | "application/vnd.docker.plugin.v0+json" | ||
|
||
|
||
## *Manifest* Field Descriptions | ||
|
||
Manifest provides the base accessible fields for working with V0 plugin format | ||
in the registry. | ||
|
||
- **`manifestVersion`** *string* | ||
|
||
version of the plugin manifest (This version uses V0) | ||
|
||
- **`description`** *string* | ||
|
||
description of the plugin | ||
|
||
- **`documentation`** *string* | ||
|
||
link to the documentation about the plugin | ||
|
||
- **`interface`** *PluginInterface* | ||
|
||
interface implemented by the plugins, struct consisting of the following fields | ||
|
||
- **`types`** *string array* | ||
|
||
types indicate what interface(s) the plugin currently implements. | ||
|
||
currently supported: | ||
|
||
- **docker.volumedriver/1.0** | ||
|
||
- **`socket`** *string* | ||
|
||
socket is the name of the socket the engine should use to communicate with the plugins. | ||
the socket will be created in `/run/docker/plugins`. | ||
|
||
|
||
- **`entrypoint`** *string array* | ||
|
||
entrypoint of the plugin, see [`ENTRYPOINT`](../reference/builder.md#entrypoint) | ||
|
||
- **`workdir`** *string* | ||
|
||
workdir of the plugin, see [`WORKDIR`](../reference/builder.md#workdir) | ||
|
||
- **`network`** *PluginNetwork* | ||
|
||
network of the plugin, struct consisting of the following fields | ||
|
||
- **`type`** *string* | ||
|
||
network type. | ||
|
||
currently supported: | ||
|
||
- **bridge** | ||
- **host** | ||
- **none** | ||
|
||
- **`capabilities`** *array* | ||
|
||
capabilities of the plugin (*Linux only*), see list [`here`](https://github.com/opencontainers/runc/blob/master/libcontainer/SPEC.md#security) | ||
|
||
- **`mounts`** *PluginMount array* | ||
|
||
mount of the plugin, struct consisting of the following fields, see [`MOUNTS`](https://github.com/opencontainers/runtime-spec/blob/master/config.md#mounts) | ||
|
||
- **`name`** *string* | ||
|
||
name of the mount. | ||
- **`description`** *string* | ||
|
||
description of the mount. | ||
|
||
- **`source`** *string* | ||
|
||
source of the mount. | ||
|
||
- **`destination`** *string* | ||
|
||
destination of the mount. | ||
|
||
- **`type`** *string* | ||
|
||
mount type. | ||
- **`options`** *string array* | ||
|
||
options of the mount. | ||
- **`devices`** *PluginDevice array* | ||
|
||
device of the plugin, (*Linux only*), struct consisting of the following fields, see [`DEVICES`](https://github.com/opencontainers/runtime-spec/blob/master/config-linux.md#devices) | ||
|
||
- **`name`** *string* | ||
|
||
name of the device. | ||
- **`description`** *string* | ||
|
||
description of the device. | ||
- **`path`** *string* | ||
|
||
path of the device. | ||
|
||
- **`env`** *PluginEnv array* | ||
|
||
env of the plugin, struct consisting of the following fields | ||
|
||
- **`name`** *string* | ||
|
||
name of the env. | ||
- **`description`** *string* | ||
|
||
description of the env. | ||
|
||
- **`value`** *string* | ||
|
||
value of the env. | ||
|
||
- **`args`** *PluginArgs* | ||
|
||
args of the plugin, struct consisting of the following fields | ||
|
||
- **`name`** *string* | ||
|
||
name of the env. | ||
- **`description`** *string* | ||
|
||
description of the env. | ||
|
||
- **`value`** *string array* | ||
|
||
values of the args. | ||
|
||
|
||
## Example Manifest | ||
|
||
*Example showing the 'tiborvass/no-remove' plugin manifest.* | ||
|
||
``` | ||
{ | ||
"manifestVersion": "v0", | ||
"description": "A test plugin for Docker", | ||
"documentation": "https://docs.docker.com/engine/extend/plugins/", | ||
"entrypoint": ["plugin-no-remove", "/data"], | ||
"interface" : { | ||
"types": ["docker.volumedriver/1.0"], | ||
"socket": "plugins.sock" | ||
}, | ||
"network": { | ||
"type": "host" | ||
}, | ||
"mounts": [ | ||
{ | ||
"source": "/data", | ||
"destination": "/data", | ||
"type": "bind", | ||
"options": ["shared", "rbind"] | ||
}, | ||
{ | ||
"destination": "/foobar", | ||
"type": "tmpfs" | ||
} | ||
], | ||
"args": { | ||
"name": "args", | ||
"description": "command line arguments", | ||
"value": [] | ||
}, | ||
"env": [ | ||
{ | ||
"name": "DEBUG", | ||
"description": "If set, prints debug messages", | ||
"value": "1" | ||
} | ||
], | ||
"devices": [ | ||
{ | ||
"name": "device", | ||
"description": "a host device to mount", | ||
"path": "/dev/cpu_dma_latency" | ||
} | ||
] | ||
} | ||
``` |