Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Apps | Demo | Docs | Install
  1. Cloudron Forum
  2. GitLab
  3. Gitlab how to run container registry

Gitlab how to run container registry

Scheduled Pinned Locked Moved Unsolved GitLab
gitlab
31 Posts 11 Posters 5.2k Views 17 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • girishG Offline
    girishG Offline
    girish
    Staff
    wrote on last edited by
    #12

    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.

    M 1 Reply Last reply
    0
    • girishG girish

      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.

      M Offline
      M Offline
      msbt
      App Dev
      wrote on last edited by
      #13

      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.

      girishG 1 Reply Last reply
      0
      • M msbt

        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.

        girishG Offline
        girishG Offline
        girish
        Staff
        wrote on last edited by
        #14

        @msbt how do you handle backups for the registry right now?

        M mehdiM 2 Replies Last reply
        0
        • girishG girish

          @msbt how do you handle backups for the registry right now?

          M Offline
          M Offline
          msbt
          App Dev
          wrote on last edited by
          #15

          I don't, since those images can easily be rebuilt. It's a proxmox host and I've backed up the vm itself, it the server dies at some point, I'll just migrate to a different one.

          1 Reply Last reply
          1
          • girishG girish

            @msbt how do you handle backups for the registry right now?

            mehdiM Offline
            mehdiM Offline
            mehdi
            App Dev
            wrote on last edited by
            #16

            @girish The registry container just stores the images on its filesystem, doesn't it?

            girishG 1 Reply Last reply
            0
            • mehdiM mehdi

              @girish The registry container just stores the images on its filesystem, doesn't it?

              girishG Offline
              girishG Offline
              girish
              Staff
              wrote on last edited by
              #17

              @mehdi yes, but it seems one can also configure them to use S3 and the likes. I was just wondering what people usually do.

              subvenS 1 Reply Last reply
              0
              • girishG girish

                @mehdi yes, but it seems one can also configure them to use S3 and the likes. I was just wondering what people usually do.

                subvenS Offline
                subvenS Offline
                subven
                wrote on last edited by
                #18

                @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 ^^

                marioM 1 Reply Last reply
                0
                • subvenS subven

                  @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 ^^

                  marioM Offline
                  marioM Offline
                  mario
                  App Dev
                  wrote on last edited by
                  #19

                  @subven GitLab registry is basically "just" a configuration to use the registry api through GitLab. It's a regular Docker product - https://docs.docker.com/registry/

                  1 Reply Last reply
                  1
                  • girishG Offline
                    girishG Offline
                    girish
                    Staff
                    wrote on last edited by
                    #20

                    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).

                    robiR marioM 2 Replies Last reply
                    0
                    • girishG girish

                      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).

                      robiR Offline
                      robiR Offline
                      robi
                      wrote on last edited by
                      #21

                      @girish I just really need a private registry within cloudron.

                      Have private code waiting to become a private app and this is a show stopper road block.

                      Conscious tech

                      1 Reply Last reply
                      1
                      • girishG girish

                        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).

                        marioM Offline
                        marioM Offline
                        mario
                        App Dev
                        wrote on last edited by
                        #22

                        @girish I definitely have a use case for this despite not being a super-huge enterprise, which is why I'm trying to get it done. And I will - it's just a matter of time 🙂

                        I'm not against Harbor, etc. but I do need this to work which is why I'm on it 🙂

                        girishG 1 Reply Last reply
                        1
                        • marioM mario

                          @girish I definitely have a use case for this despite not being a super-huge enterprise, which is why I'm trying to get it done. And I will - it's just a matter of time 🙂

                          I'm not against Harbor, etc. but I do need this to work which is why I'm on it 🙂

                          girishG Offline
                          girishG Offline
                          girish
                          Staff
                          wrote on last edited by
                          #23

                          @mario You left me a note somewhere on how to use the docker registry app with GitLab but I cannot find it anymore. Where did you put it?

                          marioM 1 Reply Last reply
                          0
                          • girishG girish

                            @mario You left me a note somewhere on how to use the docker registry app with GitLab but I cannot find it anymore. Where did you put it?

                            marioM Offline
                            marioM Offline
                            mario
                            App Dev
                            wrote on last edited by
                            #24

                            @girish README inside the repo: https://git.cloudron.io/cloudron/docker-registry-app

                            girishG 1 Reply Last reply
                            0
                            • marioM mario

                              @girish README inside the repo: https://git.cloudron.io/cloudron/docker-registry-app

                              girishG Offline
                              girishG Offline
                              girish
                              Staff
                              wrote on last edited by
                              #25

                              @mario 🤦 Sorry I missed the most obvious place, I was looking all over.

                              arshsahzadA 1 Reply Last reply
                              0
                              • N niels referenced this topic on
                              • girishG girish

                                @mario 🤦 Sorry I missed the most obvious place, I was looking all over.

                                arshsahzadA Offline
                                arshsahzadA Offline
                                arshsahzad
                                wrote on last edited by
                                #26

                                Need Help: Has anyone enabled container registry in the cloudron gitlab, I'm getting error 500 when making changes to the gitlab.yml file.

                                  registry:
                                    enabled: true
                                    host: registry.git.arsh.dev
                                    port: 5005
                                    api_url: http://localhost:5000/ # internal address to the registry, will be used by GitLab to directly communicate with API
                                    key: config/registry.key
                                    path: shared/registry
                                    issuer: gitlab-issuer
                                
                                girishG 2 Replies Last reply
                                0
                                • arshsahzadA arshsahzad

                                  Need Help: Has anyone enabled container registry in the cloudron gitlab, I'm getting error 500 when making changes to the gitlab.yml file.

                                    registry:
                                      enabled: true
                                      host: registry.git.arsh.dev
                                      port: 5005
                                      api_url: http://localhost:5000/ # internal address to the registry, will be used by GitLab to directly communicate with API
                                      key: config/registry.key
                                      path: shared/registry
                                      issuer: gitlab-issuer
                                  
                                  girishG Offline
                                  girishG Offline
                                  girish
                                  Staff
                                  wrote on last edited by
                                  #27

                                  @arshsahzad said in Gitlab how to run container registry:

                                  I'm getting error 500 when making changes to the gitlab.yml file

                                  This most likely means there is an error in the yml syntax. What error do you see in the logs ? You will find more logs in /run/gitlab (via web terminal).

                                  1 Reply Last reply
                                  0
                                  • arshsahzadA arshsahzad

                                    Need Help: Has anyone enabled container registry in the cloudron gitlab, I'm getting error 500 when making changes to the gitlab.yml file.

                                      registry:
                                        enabled: true
                                        host: registry.git.arsh.dev
                                        port: 5005
                                        api_url: http://localhost:5000/ # internal address to the registry, will be used by GitLab to directly communicate with API
                                        key: config/registry.key
                                        path: shared/registry
                                        issuer: gitlab-issuer
                                    
                                    girishG Offline
                                    girishG Offline
                                    girish
                                    Staff
                                    wrote on last edited by
                                    #28

                                    @arshsahzad Have you seen https://docs.cloudron.io/apps/docker-registry/#gitlab-integration already ?

                                    arshsahzadA 2 Replies Last reply
                                    0
                                    • girishG girish

                                      @arshsahzad Have you seen https://docs.cloudron.io/apps/docker-registry/#gitlab-integration already ?

                                      arshsahzadA Offline
                                      arshsahzadA Offline
                                      arshsahzad
                                      wrote on last edited by arshsahzad
                                      #29

                                      Hi @girish, I have not yet looked into the document, I will let you know...

                                      1 Reply Last reply
                                      1
                                      • girishG girish

                                        @arshsahzad Have you seen https://docs.cloudron.io/apps/docker-registry/#gitlab-integration already ?

                                        arshsahzadA Offline
                                        arshsahzadA Offline
                                        arshsahzad
                                        wrote on last edited by arshsahzad
                                        #30

                                        Hi @girish, From the Docs:

                                        1. Create a volume named registry-shared.
                                        
                                        2. Attach volume name registry-shared to both GitLab and Docker Registry apps. Be sure to uncheck the Read Only checkbox.
                                        
                                        3. Create folders containers and certs on the host filesystem inside the path that is assigned to the registry-shared volume.
                                        
                                        4. Run the following commands inside the certs folder:
                                        
                                        openssl req -nodes -newkey rsa:2048 -keyout registry-auth.key -out registry-auth.csr -subj "/CN=gitlab-issuer"
                                        openssl x509 -in registry-auth.csr -out registry-auth.crt -req -signkey registry-auth.key -days 365000
                                        chmod 777 registry-auth.key registry-auth.crt registry-auth.csr
                                        
                                        5. Modify the permissions from root to cloudron inside the Docker Registry app for the created folders and files.
                                        
                                        chown -R cloudron:cloudron /media/registry-shared/
                                        
                                        6. Modify /app/data/config.yml of the Docker Registry app using the File manager by altering or adding the auth part to resemble the following:
                                        
                                        auth:
                                          token:
                                            realm: https://<GITLAB_HOST>/jwt/auth
                                            service: container_registry
                                            issuer: gitlab-issuer
                                            rootcertbundle: /media/registry-shared/certs/registry-auth.crt
                                        Change the 'rootdirectory' value inside the same config file to:
                                        
                                        
                                        /media/registry-shared/containers
                                        Save the file and restart the app.
                                        
                                        7. Modify /app/data/gitlab.yml of the GitLab app by adding the following lines (some of them might already be there, so skip them):
                                        
                                        production:
                                          <<: *base
                                        
                                          registry:
                                            enabled: true
                                            host: <DOCKER_REGISTRY_HOST>
                                            port: 443
                                            api_url: https://<DOCKER_REGISTRY_HOST>
                                            key: /media/registry-shared/certs/registry-auth.key
                                            path: /media/registry-shared/containers
                                            issuer: gitlab-issuer
                                        
                                        1. I have created the directory in the host machine
                                        /opt/registry-shared
                                        
                                        1. Created two other folders (containers & certs) in the registry-shared directory

                                        2. Generated keys in certs folders using the following cmd

                                        arshsahzadA 1 Reply Last reply
                                        0
                                        • arshsahzadA arshsahzad

                                          Hi @girish, From the Docs:

                                          1. Create a volume named registry-shared.
                                          
                                          2. Attach volume name registry-shared to both GitLab and Docker Registry apps. Be sure to uncheck the Read Only checkbox.
                                          
                                          3. Create folders containers and certs on the host filesystem inside the path that is assigned to the registry-shared volume.
                                          
                                          4. Run the following commands inside the certs folder:
                                          
                                          openssl req -nodes -newkey rsa:2048 -keyout registry-auth.key -out registry-auth.csr -subj "/CN=gitlab-issuer"
                                          openssl x509 -in registry-auth.csr -out registry-auth.crt -req -signkey registry-auth.key -days 365000
                                          chmod 777 registry-auth.key registry-auth.crt registry-auth.csr
                                          
                                          5. Modify the permissions from root to cloudron inside the Docker Registry app for the created folders and files.
                                          
                                          chown -R cloudron:cloudron /media/registry-shared/
                                          
                                          6. Modify /app/data/config.yml of the Docker Registry app using the File manager by altering or adding the auth part to resemble the following:
                                          
                                          auth:
                                            token:
                                              realm: https://<GITLAB_HOST>/jwt/auth
                                              service: container_registry
                                              issuer: gitlab-issuer
                                              rootcertbundle: /media/registry-shared/certs/registry-auth.crt
                                          Change the 'rootdirectory' value inside the same config file to:
                                          
                                          
                                          /media/registry-shared/containers
                                          Save the file and restart the app.
                                          
                                          7. Modify /app/data/gitlab.yml of the GitLab app by adding the following lines (some of them might already be there, so skip them):
                                          
                                          production:
                                            <<: *base
                                          
                                            registry:
                                              enabled: true
                                              host: <DOCKER_REGISTRY_HOST>
                                              port: 443
                                              api_url: https://<DOCKER_REGISTRY_HOST>
                                              key: /media/registry-shared/certs/registry-auth.key
                                              path: /media/registry-shared/containers
                                              issuer: gitlab-issuer
                                          
                                          1. I have created the directory in the host machine
                                          /opt/registry-shared
                                          
                                          1. Created two other folders (containers & certs) in the registry-shared directory

                                          2. Generated keys in certs folders using the following cmd

                                          arshsahzadA Offline
                                          arshsahzadA Offline
                                          arshsahzad
                                          wrote on last edited by
                                          #31

                                          @arshsahzad said in Gitlab how to run container registry:

                                          1. Attach volume name registry-shared to both GitLab and Docker Registry apps. Be sure to uncheck the Read Only checkbox.

                                          I'm not able to figure out, how to attach the bind mount to the running gitlab container and how to uncheck read only checkbox

                                          /opt/registry-shared
                                          
                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Bookmarks
                                          • Search