extension(multi-arch): refactor and cross link to multi-platform page

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
CrazyMax 2022-09-10 20:13:27 +02:00
parent cf7f4366d8
commit 8349c857bf
No known key found for this signature in database
GPG Key ID: 3248E46B6BB8C7F7
2 changed files with 36 additions and 13 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

View File

@ -13,25 +13,48 @@ Docker Desktop retrieves the extension image according to the users system ar
### Build and push for multiple architectures
If you created an extension from the `docker extension init` command, the `Makefile` at the root of the directory includes a target with name `push-extension`.
If you created an extension from the `docker extension init` command, the
`Makefile` at the root of the directory includes a target with name
`push-extension`.
You can do `make push-extension` to build your extension against both `linux/amd64` and `linux/arm64` platforms, and push them to DockerHub. For example:
You can do `make push-extension` to build your extension against both
`linux/amd64` and `linux/arm64` platforms, and push them to DockerHub.
`docker buildx build --platform=linux/amd64,linux/arm64 -t <name-of-your-extension> .`
Alternatively, if you started from an empty directory, use the command below to build your extension for multiple architectures:
```
docker buildx build \
--push \
--platform=linux/amd64,linux/arm64 \
--tag=my-extension:0.0.1 .
For example:
```console
$ make push-extension
```
The information above serves as a guide to help you get started. Its up to you to define the CI/CD process to build and push the extension.
Alternatively, if you started from an empty directory, use the command below
to build your extension for multiple architectures:
![hub-multi-arch-extension](images/hub-multi-arch-extension.png)
```console
$ docker buildx build --push --platform=linux/amd64,linux/arm64 --tag=username/my-extension:0.0.1 .
```
You can then check the image manifest to see if the image is available for both
architectures using the [`docker buildx imagetools` command](../../../engine/reference/commandline/buildx_imagetools.md):
```console
$ docker buildx imagetools inspect username/my-extension:0.0.1
Name: docker.io/username/my-extension:0.0.1
MediaType: application/vnd.docker.distribution.manifest.list.v2+json
Digest: sha256:f3b552e65508d9203b46db507bb121f1b644e53a22f851185d8e53d873417c48
Manifests:
Name: docker.io/username/my-extension:0.0.1@sha256:71d7ecf3cd12d9a99e73ef448bf63ae12751fe3a436a007cb0969f0dc4184c8c
MediaType: application/vnd.docker.distribution.manifest.v2+json
Platform: linux/amd64
Name: docker.io/username/my-extension:0.0.1@sha256:5ba4ceea65579fdd1181dfa103cc437d8e19d87239683cf5040e633211387ccf
MediaType: application/vnd.docker.distribution.manifest.v2+json
Platform: linux/arm64
```
> **Note**
>
> For more information, see [Multi-platform images](../../../build/building/multi-platform.md) page.
### Adding multi-arch binaries