diff --git a/_data/toc.yaml b/_data/toc.yaml index 08b02756da..49ebe8dcb4 100644 --- a/_data/toc.yaml +++ b/_data/toc.yaml @@ -1325,6 +1325,8 @@ manuals: section: - path: /desktop/extensions-sdk/ title: Overview + - path: /desktop/extensions-sdk/process/ + title: The build and publish process - path: /desktop/extensions-sdk/quickstart/ title: Quickstart - sectiontitle: "Part one: Build" diff --git a/assets/images/design.svg b/assets/images/design.svg new file mode 100644 index 0000000000..ed93f5bf25 --- /dev/null +++ b/assets/images/design.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/process.svg b/assets/images/process.svg new file mode 100644 index 0000000000..23b20574df --- /dev/null +++ b/assets/images/process.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/publish.svg b/assets/images/publish.svg new file mode 100644 index 0000000000..5073cf232e --- /dev/null +++ b/assets/images/publish.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/sync.svg b/assets/images/sync.svg new file mode 100644 index 0000000000..ed3772c2c1 --- /dev/null +++ b/assets/images/sync.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/desktop/extensions-sdk/index.md b/desktop/extensions-sdk/index.md index 989b10c8ba..8352fb4ead 100644 --- a/desktop/extensions-sdk/index.md +++ b/desktop/extensions-sdk/index.md @@ -20,51 +20,65 @@ An extension can contain a UI part and backend parts that run either on the host Extensions are distributed through the Docker Hub. Development of extensions can be done locally without the need to push the extension to Docker Hub. See [Extensions distribution](extensions/DISTRIBUTION.md) for further details. -## How to use the resources in this section - -The documentation is structured so that it matches the steps you need to take when creating your extension. There are two main parts to creating a Docker Extension; build the foundations and then publish your extension. - -### Part one: Build the foundations - -The build process consists of: - -- Installing the latest version of Docker Desktop. -- Setting up the directory with files which range from the extension’s source code to the required extension-specific files. -- Creating the Dockerfile to build, publish, and run your extension in Docker Desktop. -- Configuring the metadata file which is required at the root of the image filesystem. -- Building and installing the extension. -- Testing and debugging the extension. - -There are also instructions on [how to set authentication](dev/oauth2-flow.md) for your extension. - -This build section provides sample folders with ready-to-go examples that walk you through building: - -- A frontend extension based on plain HTML -- A simple Docker extension that contains only a UI part and is based on ReactJS. This is useful if you want to develop an extension which consists exclusively of a visual part with no services running in the VM. -- An extension that invokes Docker CLI commands -- A simple backend extension - ->Note -> ->Whilst you're building your extension, make sure you follow our [design](design/design-guidelines.md) and [UI styling](design/overview.md) guidelines to ensure visual consistency and [level AA accessibility standards](https://www.w3.org/WAI/WCAG2AA-Conformance){:target="_blank" rel="noopener" class="_"}. - -If your extension requires additional services running in the Docker Desktop VM, see the [VM UI](https://github.com/docker/extensions-sdk/tree/main/samples/vm-service){:target="_blank" rel="noopener" class="_"} example. - -For further inspiration, see the other examples in the [samples folder](https://github.com/docker/extensions-sdk/tree/main/samples){:target="_blank" rel="noopener" class="_"}. - -### Part two: Publish and distribute your extension - -Docker Desktop displays published extensions in the Extensions Marketplace. The Extensions Marketplace is a curated space where developers from all over can discover extensions to improve their developer experience and upload their own extension to share with the world. - -All extensions submitted to the Extension Marketplace are reviewed and approved by our team before listing. This review process ensures a level of trust, security, and quality for developers using Extensions and allows for Extension developers to get feedback on what will improve their Extensions experience. - -If you want your extension to be published in the Marketplace, you can submit your extension [here](https://www.docker.com/products/extensions/submissions/){:target="_blank" rel="noopener" class="_"}. We’ll review your submission and provide feedback if changes are needed before we can validate and publish it to make it available to all Docker Desktop users. - -## What’s next? -If you want to get up and running quickly with a Docker Extension, see the [Quickstart guide](quickstart.md). - -Alternatively, get started with Part one: Build for more in-depth information about each step of the extension creation process. - -For an in-depth tutorial of the entire build process, we recommend the following video walkthrough from DockerCon 2022: - - +
+ +
+
+
+
+ Process +
+

The build and publish process

+

Understand the process for building and publishing an extension.

+
+
+
+
+
+ Quickstart +
+

Quickstart guide

+

Follow the quickstart guide to build a basic Docker Extension quickly.

+
+
+
+
+
+ Design quidelines +
+

View the design guidelines

+

Ensure your extension aligns to Docker's design guidelines and principles

+
+
+
+ +
+
+
+
+ Publish +
+

Publish your extension

+

Understand how to publish your extension to the Marketplace.

+
+
+
+
+
+ Kubernetes +
+

Interacting with Kubernetes

+

Find information on how to interact indirectly with a Kubernetes cluster from your Docker extension.

+
+
+
+
+
+ Multi-arch +
+

Multi-arch extensions

+

Build your extension for multiple architectures.

+
+
+
+
diff --git a/desktop/extensions-sdk/process.md b/desktop/extensions-sdk/process.md new file mode 100644 index 0000000000..4b84bc3673 --- /dev/null +++ b/desktop/extensions-sdk/process.md @@ -0,0 +1,52 @@ +--- +description: Understand the process of creating an extension. +title: The build build and publish process +keyword: Docker Extensions, sdk, build, create, publish +--- + +The documentation is structured so that it matches the steps you need to take when creating your extension. There are two main parts to creating a Docker Extension; build the foundations and then publish your extension. + +### Part one: Build the foundations + +The build process consists of: + +- Installing the latest version of Docker Desktop. +- Setting up the directory with files which range from the extension’s source code to the required extension-specific files. +- Creating the Dockerfile to build, publish, and run your extension in Docker Desktop. +- Configuring the metadata file which is required at the root of the image filesystem. +- Building and installing the extension. +- Testing and debugging the extension. + +There are also instructions on [how to set authentication](dev/oauth2-flow.md) for your extension. + +This build section provides sample folders with ready-to-go examples that walk you through building: + +- A frontend extension based on plain HTML +- A simple Docker extension that contains only a UI part and is based on ReactJS. This is useful if you want to develop an extension which consists exclusively of a visual part with no services running in the VM. +- An extension that invokes Docker CLI commands +- A simple backend extension + +>Note +> +>Whilst you're building your extension, make sure you follow our [design](design/design-guidelines.md) and [UI styling](design/overview.md) guidelines to ensure visual consistency and [level AA accessibility standards](https://www.w3.org/WAI/WCAG2AA-Conformance){:target="_blank" rel="noopener" class="_"}. + +If your extension requires additional services running in the Docker Desktop VM, see the [VM UI](https://github.com/docker/extensions-sdk/tree/main/samples/vm-service){:target="_blank" rel="noopener" class="_"} example. + +For further inspiration, see the other examples in the [samples folder](https://github.com/docker/extensions-sdk/tree/main/samples){:target="_blank" rel="noopener" class="_"}. + +### Part two: Publish and distribute your extension + +Docker Desktop displays published extensions in the Extensions Marketplace. The Extensions Marketplace is a curated space where developers from all over can discover extensions to improve their developer experience and upload their own extension to share with the world. + +All extensions submitted to the Extension Marketplace are reviewed and approved by our team before listing. This review process ensures a level of trust, security, and quality for developers using Extensions and allows for Extension developers to get feedback on what will improve their Extensions experience. + +If you want your extension to be published in the Marketplace, you can submit your extension [here](https://www.docker.com/products/extensions/submissions/){:target="_blank" rel="noopener" class="_"}. We’ll review your submission and provide feedback if changes are needed before we can validate and publish it to make it available to all Docker Desktop users. + +## What’s next? +If you want to get up and running quickly with a Docker Extension, see the [Quickstart guide](quickstart.md). + +Alternatively, get started with Part one: Build for more in-depth information about each step of the extension creation process. + +For an in-depth tutorial of the entire build process, we recommend the following video walkthrough from DockerCon 2022: + + \ No newline at end of file