mirror of https://github.com/docker/cli.git
32 lines
1.6 KiB
Markdown
32 lines
1.6 KiB
Markdown
|
# platforms
|
||
|
|
||
|
A Go package for formatting, normalizing and matching container platforms.
|
||
|
|
||
|
This package is based on the Open Containers Image Spec definition of a [platform](https://github.com/opencontainers/image-spec/blob/main/specs-go/v1/descriptor.go#L52).
|
||
|
|
||
|
## Platform Specifier
|
||
|
|
||
|
While the OCI platform specifications provide a tool for components to
|
||
|
specify structured information, user input typically doesn't need the full
|
||
|
context and much can be inferred. To solve this problem, this package introduces
|
||
|
"specifiers". A specifier has the format
|
||
|
`<os>|<arch>|<os>/<arch>[/<variant>]`. The user can provide either the
|
||
|
operating system or the architecture or both.
|
||
|
|
||
|
An example of a common specifier is `linux/amd64`. If the host has a default
|
||
|
runtime that matches this, the user can simply provide the component that
|
||
|
matters. For example, if an image provides `amd64` and `arm64` support, the
|
||
|
operating system, `linux` can be inferred, so they only have to provide
|
||
|
`arm64` or `amd64`. Similar behavior is implemented for operating systems,
|
||
|
where the architecture may be known but a runtime may support images from
|
||
|
different operating systems.
|
||
|
|
||
|
## Project details
|
||
|
|
||
|
**platforms** is a containerd sub-project, licensed under the [Apache 2.0 license](./LICENSE).
|
||
|
As a containerd sub-project, you will find the:
|
||
|
* [Project governance](https://github.com/containerd/project/blob/main/GOVERNANCE.md),
|
||
|
* [Maintainers](https://github.com/containerd/project/blob/main/MAINTAINERS),
|
||
|
* and [Contributing guidelines](https://github.com/containerd/project/blob/main/CONTRIBUTING.md)
|
||
|
|
||
|
information in our [`containerd/project`](https://github.com/containerd/project) repository.
|