Idiota

Configurazione del registro dei contenitori GitLab

Configurazione del registro dei contenitori GitLab
Nel nostro ultimo post ti abbiamo mostrato come puoi configurare un'istanza GitLab per gestire i tuoi progetti personali o della tua organizzazione. Ti consigliamo di utilizzare un FQDN e di avere l'istanza GitLab disponibile su HTTPS. Poiché la maggior parte delle applicazioni sono pacchettizzate come contenitori, è ragionevole impostare un registro contenitori in cui diverse versioni della tua applicazione, così come i suoi diversi componenti, possono essere archiviate come immagini Docker.

Se non sai cos'è un registro contenitori, non preoccuparti. Diventerà chiaro una volta che inserirai effettivamente la tua prima immagine del contenitore in un'istanza di GitLab. Per ora, considerali come repository per le tue immagini contenitore. Questi non sono contenitori in esecuzione ma solo immagini (dati semplici) che si trovano nell'istanza GitLab remota.

Perché vorresti un registro contenitori GitLab??

È probabile che la tua applicazione sia impacchettata come una singola immagine Docker o una raccolta di tali immagini. Ciò significa che diverse versioni saranno associate a diverse immagini e il registro dei contenitori ti aiuterà a tenerne traccia individualmente e a vedere quali devono essere raggruppate insieme in una particolare versione.

Il registro sta ai contenitori, ciò che il repository sta al codice sorgente e GitLab è un posto dove gestirli tutti.

Prerequisiti

  1. Un'istanza GitLab funzionante su HTTPS
  2. Accesso root all'istanza
  3. Accesso per modificare i record DNS del tuo nome di dominio

Supponiamo che il nostro GitLab sia in esecuzione gitlab.esempio.come .

Certificati DNS e TLS del Registro di sistema

Devi essere l'utente root per abilitare la funzionalità del registro contenitori nell'istanza GitLab. I singoli utenti possono quindi scegliere di utilizzare questa funzionalità nei rispettivi progetti, se lo desiderano. Ci sono due modi per farlo:

  1. Riutilizza il nome di dominio esistente e i certificati TLS per gitlab.esempio.come ed esegui il registro su una porta diversa.
  2. Indica un altro nome di dominio, diciamo, registro.gitlab.esempio.come allo stesso indirizzo IP in cui è in esecuzione GitLab e configurare il registro lì.

Andiamo con la seconda opzione perché è molto più professionale.

Passo 1: Aggiungi un record A per registro.gitlab.esempio.come puntando allo stesso IP in cui è in esecuzione la tua istanza GitLab.

Passo 2: Interrompi i servizi gitlab in esecuzione sul tuo server.

$ sudo gitlab-ctl stop

Passaggio 3: Aggiungi cliente ACME certibot's PPA sul tuo sistema e installa certbot.

$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt update
$ sudo apt install certbot

Passaggio 4: Ottieni certificati da Let's Encrypt.

$ certbot certamente

Vedrai un messaggio del tipo:
“'
Come vorresti autenticarti con ACME CA?
--
1: Avvia un server web temporaneo (autonomo)
2: posiziona i file nella directory webroot (webroot)
--
Selezionare il numero appropriato [1-2] quindi [invio] (premere 'c' per annullare): 1
“'

Questo ti chiederà quindi la tua email, ti chiederà di accettare i loro termini di servizio e, soprattutto, ti chiederà il tuo nome di dominio che sarebbe registro.gitlab.esempio.come nel nostro caso di esempio. Riceverai un messaggio che dice se i certificati sono stati ottenuti o meno. Se lo fossero, passa al passaggio 5

Passaggio 5: Ora che abbiamo i nostri certificati, è il momento di inserirli nelle directory relative a GitLab.

$ cp /etc/letsencrypt/live/registry.gitlab.esempio.com/fullchain.pem
/etc/gitlab/ssl/registry.gitlab.esempio.crt
$ cp /etc/letsencrypt/live/registry.gitlab.esempio.com/privkey.pem
/etc/gitlab/ssl/registry.gitlab.esempio.chiave

Proteggi le autorizzazioni su di loro:

$ chmod 600 /etc/gitlab/ssl/registry.gitlab.esempio.come.*

Come il resto del tutorial, assicurati di sostituire example.com con il tuo nome di dominio esistente. Poiché questo è il nome della directory, dove certbot ha archiviato il certificato.

Passaggio 6: Modifica la configurazione di GitLab. Apri il file /etc/gitlab/gitlab.rb e aggiungi le seguenti righe in fondo ad esso:

registro_esterno_url 'https://registro.gitlab.esempio.com'

Se hai fatto tutto con attenzione, la parte più complicata del setup è finita! Ora avrai un registro Container attivo e funzionante, esegui semplicemente:

$ sudo gitlab-ctl reconfigure
$ sudo gitlab-ctl start

Abilitazione del registro e push delle immagini

Ora che abbiamo per noi un Container Registry, creiamo un nuovo progetto utilizzando l'interfaccia utente web di GitLab e verifichiamo che funzioni.

Nella colonna di sinistra puoi vedere una sezione Registro.  Puoi fare clic su di esso per visualizzare istruzioni dettagliate su come accedere e inserire immagini al suo interno. Torniamo al nostro desktop locale, su cui dovrebbe essere installato Docker.

Possiamo usarlo per creare un semplice contenitore hello-world e inviarlo a questo registro. Nel tuo sistema locale, crea una nuova cartella:

$ cd ~
$ mkdir sample_container

Al suo interno creiamo un file chiamato Dockerfile e aggiungi i seguenti contenuti:

DA ubuntu: più recente
## I tuoi comandi personalizzati qui

Puoi mantenere il tuo Dockerfile solo con la prima riga. Sarà un semplice contenitore Ubuntu. Ora lo costruisci con un tag significativo (useremo il tag il mio progetto che è lo stesso del nome del nostro progetto GitLab, questo è importante). Nella stessa directory eseguire:

$ docker build -t registro.gitlab.esempio.com//il mio progetto .

Ricordati di sostituire il tuo nome utente GitLab invece di segnaposto usato nel comando precedente.

Crea solo un contenitore Ubuntu insieme al recupero dell'immagine. Questa immagine è ciò che viene spinto. Se modifichi il contenitore e crei una nuova immagine con esso (usando commit docker comando sarà una nuova immagine). Inseriamo l'immagine Ubuntu Vanilla nel nostro registro.

Per prima cosa dobbiamo accedere utilizzando il nostro nome utente e password Gitlab:

$ registro di accesso docker.gitlab.esempio.come

Quindi eseguire:

$ docker build -t registro.gitlab.esempio.com/root/mio-progetto .
$ registro push docker.gitlab.esempio.com/root/mio-progetto

Se non sei sicuro di quale dovrebbe essere il tag del tuo contenitore, visita la pagina del registro del tuo progetto e ci saranno istruzioni chiare per esso. Se il comando docker push ha funzionato correttamente, puoi vedere una nuova immagine docker che viene caricata (o inviata) nella tua istanza GitLab. Come è stato mostrato nel mio caso:

Conclusione

Il controllo della versione è molto più della semplice gestione del codice sorgente. È in costante miglioramento per soddisfare una gamma versatile di richieste di cui qualsiasi progetto software potrebbe aver bisogno inaspettatamente. Il registro dei container è solo la punta dell'iceberg. Puoi avere pipeline CD/CI, gestione avanzata della configurazione, autorizzazione tramite token e una moltitudine di altre funzionalità abilitate in GitLab. Spero che tu abbia imparato qualcosa di nuovo su questa meravigliosa tecnologia in questo tutorial.

Facci sapere se c'è qualcosa che vuoi che copriamo!

Motori di gioco gratuiti e open source per lo sviluppo di giochi Linux
Questo articolo tratterà un elenco di motori di gioco gratuiti e open source che possono essere utilizzati per lo sviluppo di giochi 2D e 3D su Linux....
Tutorial Shadow of the Tomb Raider per Linux
Shadow of the Tomb Raider è la dodicesima aggiunta alla serie Tomb Raider, un franchise di giochi d'azione e avventura creato da Eidos Montreal. Il gi...
Come aumentare gli FPS in Linux?
FPS sta per Fotogrammi al secondo. Il compito dell'FPS è misurare il frame rate nelle riproduzioni video o nelle prestazioni di gioco game. In parole ...