-
Notifications
You must be signed in to change notification settings - Fork 18.8k
Description
Currently tags must satisfy the regexp ^[\w][\w.-]{0,127}$
. That means that tags allow _
, .
and -
apart from letters and numbers.
Semantic Versioning is quite a common versioning system today, used in NPM and in increasing numbers in other projects, including Docker itself. Semantic Versioning 2.0.0 says:
Build metadata MAY be denoted by appending a plus sign and a series of dot separated identifiers immediately following the patch or pre-release version. Identifiers MUST comprise only ASCII alphanumerics and hyphen [0-9A-Za-z-]. Identifiers MUST NOT be empty. Build metadata SHOULD be ignored when determining version precedence. Thus two versions that differ only in the build metadata, have the same precedence. Examples: 1.0.0-alpha+001, 1.0.0+20130313144700, 1.0.0-beta+exp.sha.5114f85.
This means that Semantic Versioning version numbers can in full represented by Docker tags, with the exception of the plus sign. Adding the plus sign as an allowed character in tags would allow all semantic versions to be directly used as docker tags.
It is obvious that there are a lot of competing versioning schemes and there are probably a lot of other characters that would be required for some of them as well, so the addition of just the plus sign is probably a judgement call.
However, I wanted to suggest this because of the widespread usage of semantic versioning and let the project make the judgement call.