It's not immediately clear from their documentation, but do they enforce a naming scheme on images pushed to the registry?
This is an annoyance with the GitLab Container Registry, which mandates that the repository part of the image name be 3 components or less, one of which must be the GitLab project name. So your images have to be named like namespace/project/something:tag, which may not be what you want.
Hey there! Engineer on the GitHub Container Registry here.
Our only namespacing enforcement is that packages must be published under a user or organization namespace for which you have write permissions. For example, I'd be able to publish under `ghcr.io/taywrobel/redis`, or under `ghcr.io/github/redis`, but would be disallowed from publishing as `ghcr.io/saxonww/redis`.
Other than that restriction, you can have nested image namespaces with arbitrarily many segments; i.e. `ghcr.io/taywrobel/dev/redis` would be valid.
Having arbitrarily many segments is an improvement. In particular, we have some tooling that depends on a calculated image name, and we have to pre-pull and rename images locally if we store those in GitLab's registry.
I think for an Enterprise customer being able to push images that don't match the user/org pattern would be good too. While you couldn't allow just anyone to push e.g. 'ghcr.io/docker/docker:stable', I think this is a valid want for an internal/self-managed registry.
That restriction is something we will be moving away from in the coming months. I like how GitHub allows you to publish an image under a namespace. We have an open issue for that: https://gitlab.com/gitlab-org/gitlab/-/issues/241027.
This is an annoyance with the GitLab Container Registry, which mandates that the repository part of the image name be 3 components or less, one of which must be the GitLab project name. So your images have to be named like namespace/project/something:tag, which may not be what you want.