-
Hi,
I would like to build and store docker images using Gitlab for deploying my projects to gitlab instance managed by cloudron.
Gitlab Container Registry must be installed and turn on.
Have anybody did that ?
https://docs.gitlab.com/ee/administration/container_registry.htmlThanks in advance
-
@parhelium nope but im interested too, hope someone can help asap! thanks
-
Installation
There is no “installation” to speak of, as it’s integrated into GitLab itself. You rather need to activate it, and it’s easy.
If you have a GitLab omnibus there is only one line to edit in your gitlab.rb:
registry_external_url 'https://gitlab.example.com:4443'
-
Pushing this because I want to use the registry feature and it shouldn't be that hard to implement it. Has nobody solved this so far?
@robi can you further explain how this could be done in the current cloudron gitlab app? AFAIK gitlab.yml is read only and I don't think it's usefull to mess around with the templates.
Official documentation: https://docs.gitlab.com/omnibus/settings/configuration.html
Registry config at Cloudron template: https://git.cloudron.io/cloudron/gitlab-app/-/blob/master/config_templates/gitlab.yml#L427 -
-
Although using a own subdomain for the registry would be a better approach, it is sufficient to use another port as described here.
Guide what has to be edited can be found --> https://dev.to/zaptic/how-to-gitlab-and-docker-registry-2moh
Edit: Full package documentation --> https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/administration/packages/container_registry.md
-
Trying to understand what kind of deployment people are interested in:
-
Registry stores the images locally on the server itself. If so, we have to figure out how this will get backed up. Is there an interest in backing these things up or are people OK if these container images are "lost" (maybe since it's only used for building things in CI/CD).
-
Registry is in another non-cloudron server. My understanding is this deployment is already possible but I have to try.
-
Some external service is used as registry (for example, DO recently announced it's managed docker registry). Not sure if GitLab supports this.
-
-
The reason for my private docker registry: I want to keep my things on my own infrastructure and not somewhere public on docker hub. That's why I'm currently running my own docker registry from where I push the images to my cloudrons.
I migrated most of my custom apps to official cloudron apps (used to do custom WordPress and LAMPs for various reasons and some apps made it to the store), so only a few that aren't released yet (and some probably never will) are left, but those need to be available at all times - did a cloudron version update the other day and realized that the ssl cert of the registry needed a refresh, else the apps couldn't get reconfigured and would be in an erronous state. Would be nice to have a solution on some dev cloudron which handles those images so I don't have to run that single vm with the docker registry.
-
@girish mainly I just want an all-in-one solution that works out of the box. Since registry comes (in most cases) bundled with Gitlab itself, this should be no problem. A crucial thing to look into would be container registry garbage collection since registry data can pile up easily. Basically it would be totally okay if the registry data were saved and backed up on the server itself. For small environments this would be fine and If you run a larger Gitlab instance you should be prepared anyways.
If Gitlab Registry is a seperate service, you could already use Cloudrons ability to configure backup bevavior and storage location. This would be nice for some use cases but not a basic requirement.
PS: For external/cloud storage you could already use MinIO which is available on Cloudron ^^
-
I went down the container registry rabbit hole. In the end, it seems that it provides gitlab's authentication layer for the docker registry i.e users/groups/projects have same permissions in the registry as of gitlab. It has a limitation that the registry and the gitlab have to be on the same server. There is some strange path sharing requirement that I don't completely understand - https://docs.gitlab.com/ce/administration/packages/container_registry.html#use-file-system
I think an alternate approach is get Harbor working. It looks simple enough to deploy since it's a Go app and also has LDAP. This will then work with GitLab CI/CD (nice article). This won't bring in gitlab's auth into the registry though. Are people looking for something like that? (it seems something for big enterprises).