kwk / docker-registry-frontend

Browse and modify your Docker registry in a browser.
https://registry.hub.docker.com/u/konradkleine/docker-registry-frontend/
MIT License
1.68k stars 616 forks source link

Problems handling docker images with path deeper than one directory #151

Open othews opened 8 years ago

othews commented 8 years ago

docker-registry-frontend cannot handle docker images added to the registry which have a deeper path than one directory. selecting a image with deeper path won't show tags, but will be redirected to the frontend home directory

{
 "repositories":
   [
   "anaconda/cijenkinsnode",
   "centos",
   "dbcompiler/ci/oraclejava",
   "dbcompiler/cijenkins",
   "dbcompiler/cijenkinsnode", 
   "dbcompiler/cioraclejava",
   "dep/jenkins/r2d2",
   "layer/dmc",
   "ci_buildenv",
   "phusion/baseimage",
   "ubuntu"
   ]
}

Examples:

Expected behavior is to be able to walk through the path to get the tags shown on the web page.

At the moment we are running Docker 1.12.0 on RHEL 7.2 with docker-registry-frontend:v2

kwk commented 8 years ago

@othews you're right, currently this is not supported. To cite the registry API referenc:

Classically, repository names have always been two path components where each path component is less than 30 characters. The V2 registry API does not enforce this. The rules for a repository name are as follows:

  1. A repository name is broken up into path components. A component of a repository name must be at least one lowercase, alpha-numeric characters, optionally separated by periods, dashes or underscores. More strictly, it must match the regular expression [a-z0-9]+(?:[._-][a-z0-9]+)*.
  2. If a repository name has two or more path components, they must be separated by a forward slash (“/”).
  3. The total length of a repository name, including slashes, must be less the 256 characters.
huksley commented 7 years ago

+1 on this. Sonatype Nexus 3 implements Docker v1, v2 APIs and does not restrict repos to [group]/[name] path.

I would like to have repos with name like
upstream/[group]/[name]

and docker-registry-frontend does not support it.

qianglchina commented 7 years ago

It seams that docker registry api support multi-slash

curl -k https://registry:5000/v2/xxx/beta/ubuntu/tags/list {"name":"xxx/beta/ubuntu","tags":["0.10.0"]}

MartinPyka commented 7 years ago

+1 on this. would be nice, if this issue could be resolved

antonbasic commented 7 years ago

+1

stayfrostnl commented 7 years ago

+1

gbulicanu commented 7 years ago

+1

nabbar commented 7 years ago

+1