Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 33 additions & 3 deletions types/docker-definition.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,48 @@
"default_repository_url": "https://hub.docker.com"
},
"namespace_definition": {
"requirement": "optional",
"note": "The namespace is the registry/user/organization if present.",
"requirement": "optional"
"native_name": "registry/user/organization",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When hosted on Docker Hub, this is a user or organization, but hosted anywhere else you can't assume that level of meaning without knowing about where the image is hosted.

"case_sensitive": false,
"normalization_rules": [
"It is not case sensitive and must be lowercased."
]
Comment on lines +15 to +18
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think the namespace or name is case insensitive. The spec says that the name is lowercase, and at least some implementations consider uppercase to be invalid. Uppercase is not normalized to lowercase by native OCI tools I've tried.

},
"name_definition": {
"native_name": "name"
"requirement": "required",
"native_name": "image name",
"note": "The name is the Docker image name.",
"case_sensitive": false,
"normalization_rules": [
"It is not case sensitive and must be lowercased."
]
},
"version_definition": {
"requirement": "optional",
"native_name": "tag or image id",
"note": "The version should be the image id sha256 or a tag. Since tags can be moved, a sha256 image id is preferred."
},
"qualifiers_definition": [
{
"key": "repository_url",
"requirement": "optional",
"description": "Custom container registry URL"
},
{
"key": "arch",
"requirement": "optional",
"description": "Architecture for multi-architecture images"
},
{
"key": "os",
"requirement": "optional",
"description": "Operating system for multi-OS images"
}
],
"examples": [
"pkg:docker/cassandra@latest",
"pkg:docker/smartentry/debian@dc437cc87d10",
"pkg:docker/customer/dockerimage@sha256%3A244fd47e07d10?repository_url=gcr.io"
]
}
}