Nel precedente articolo avevo mostrato come procedere all’installazione di GitLab su un nostro server locale, clicca qui per leggerlo.
GitLab è uno strumento leader nel mondo DevOps, oggi è tra i più diffusi per il versionamento del proprio codice software, ma oltre a questo è molto di più!
GitLab tra le tante funzionalità, mette a disposizione anche un Container Registry.
Il GitLab Container Registry è un registro integrato all’interno di GitLab stesso, che consente di archiviare, condividere e distribuire facilmente le immagini dei container all’interno dei progetti GitLab.
Questa integrazione, insieme a GitLab CI, rende GitLab una piattaforma completa per automatizzare e accelerare i processi DevOps, semplificando ulteriormente l’intero ciclo di vita dello sviluppo software.
Se utilizzate GitLab come servizio direttamente su gitlab.com, troverete il registry già abilitato, se invece lo avete installato su un vostro server locale sarà necessario abilitarlo.
La documentazione ufficiale può sembrare molto esaustiva ma spesso ci si perde tra i dettagli.
In questa guida vi mostrerò brevemente solo quattro semplici stringhe da modificare per abilitare il registry.
Partiamo dalla premessa che voi siate l’amministratore del sistema e che ne abbiate accesso e pieno controllo, il file da editare sarà il classico "/etc/gitlab/gitlab.rb".
Limitiamoci a editare queste sole stringhe, ovviamente voi adattatele alla vostra url
registry_external_url 'https://gitlab.marcofanuntza.it:5050'
gitlab_rails['registry_enabled'] = true
gitlab_rails['registry_host'] = "gitlab.marcofanuntza.it"
gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry"
Dovete sapere che potete impostare una url specifica esclusiva per il registry, come per esempio registry.gitlab.esempio.it ma nel mio caso ho preferito avere un’unico indirizzo in comune con il servizio principale. Salvate il file e subito dopo eseguite il comando per applicare la configurazione alla vostra istanza in esecuzione con:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
Prima di procedere con ulteriori test assicuratevi che la porta 5050 sia ora in ascolto, è la porta default che viene utilizzata per contattare il registry, se la porta è in ascolto possiamo andare avanti.
Ora già per un primo controllo “visivo” accedete su un vostro project all’interno di gitlab, tra le voci presenti sulla sinistra andate su “Deploy” dovrebbe esservi apparsa nel sottomenù la voce “Container Ragistry”

Entrando sulla pagina vi mostrerà i comandi da eseguire sul vostro client docker per procedere con creazione e upload del container sul vostro nuovo Gitlab Container Registry

Procediamo con quest’ultima verifica direttamente dal client Docker…
Dobbiamo istruire il nostro client per considerare il registry come “insicuro” editando/creando il file /etc/docker/daemon.json
{
"insecure-registries" : [ "https://gitlab.marcofanuntza.it:5050" ]
}
Non allarmatevi questa istruzione è necessaria quando si utilizza un certificato self-signed e la CA non può essere verificata da Docker
Per la successiva build prepariamo un semplice Dockerfile come segue:
FROM ubuntu
RUN apt-get update
CMD ["echo", "Ciao, Gitlab Registry!"]
Adesso siamo pronti! eseguiamo il login con il primo comando, le credenziali saranno le stesse del vostro user gitlab che vi permette di accedere al progetto
docker login gitlab.marcofanuntza.it:5050
Con il comando che segue eseguiamo la build del nostro container
docker build -t gitlab.marcofanuntza.it:5050/utentezero/testregistry .
Ora il momento cruciale, con il comando successivo carichiamo l’immagine docker finalmente sul nostro Gitlab Container Registry
docker push gitlab.marcofanuntza.it:5050/utentezero/testregistry
Nel prossimo articolo cercherò di mostrarvi lo stesso concetto però eseguito in automatico da una pipeline, sempre all’interno di Gitlab!
