Se non sai cosa sia un registro dei container, non preoccuparti. Diventerà chiaro dopo aver effettivamente spinto la tua prima immagine del contenitore in un'istanza Gitlab. Per ora, pensa a loro come repository per le immagini del tuo contenitore. Questi non sono contenitori in esecuzione ma solo immagini (dati semplici) seduti nell'istanza Gitlab remota.
Perché vorresti un registro dei container Gitlab?
È probabile che l'applicazione sia confezionata come un'immagine a singolo docker o una raccolta di tali immagini. Ciò significa che versioni diverse saranno associate a diverse immagini e registro dei contenitori ti aiuteranno a tenerne traccia individualmente e vedere quali devono essere bundle insieme in una versione particolare.
Il registro è ai contenitori, quale repository è quello di sorgere codice e gitlab è un posto per gestirli tutti.
Prerequisiti
Supponiamo che il nostro gitlab sia in esecuzione gitlab.esempio.com .
Certificati Registry DNS e TLS
È necessario essere l'utente root per abilitare la funzione Registro dei contenitori attraverso l'istanza GitLab. I singoli utenti possono quindi scegliere di utilizzare questa funzione nei rispettivi progetti, se lo desiderano. Ci sono due modi per farlo:
Andiamo con la seconda opzione in quanto è molto più professionale.
Passo 1: Aggiungi un record A per registro.gitlab.esempio.com indicando lo stesso IP in cui è in esecuzione la tua istanza Gitlab.
Passo 2: Ferma i servizi Gitlab in esecuzione nel tuo server.
$ sudo gitlab-ctl stop
Passaggio 3: Aggiungi client ACME Certbot's PPA al sistema e installa certbot.
$ sudo ADD-APP-Repository PPA: certbot/certbot
$ sudo apt update
$ sudo apt install certbot
Passaggio 4: Ottieni certificati da Let's Cript.
$ CERTBOT CERTONLY
Vedrai un messaggio come:
""
Come vorresti autenticare con Acme CA?
--
1: girare un server web temporaneo (autonomo)
2: posizionare i file nella directory di Webroot (Webroot)
--
Seleziona il numero appropriato [1-2] quindi [Enter] (premere 'C' per annullare): 1
""
Questo chiederà quindi la tua e -mail, ti chiederà di accettare i loro termini di servizio e, soprattutto, chiederti il tuo nome di dominio che sarebbe registro.gitlab.esempio.com Nel nostro caso di esempio. Riceverai un messaggio che dice se sono stati ottenuti o meno i certificati. Se lo fossero, passa al passaggio 5
Passaggio 5: Ora che abbiamo i nostri certificati, è tempo di metterli sotto le directory relative a Gitlab.
$ cp/etc/letsencrypt/live/registry.gitlab.esempio.com/fullchain.PEM
/etc/gitlab/ssl/registro.gitlab.esempio.Crt
$ cp/etc/letsencrypt/live/registry.gitlab.esempio.com/privkey.PEM
/etc/gitlab/ssl/registro.gitlab.esempio.chiave
Proteggere le autorizzazioni su di loro:
$ chmod 600/etc/gitlab/ssl/registro.gitlab.esempio.com.*
Come il resto del tutorial, assicurati di sostituire l'esempio.com con il tuo nome di dominio esistente. Dal momento che è quello che sarà il nome della directory, dove certbot ha memorizzato il certificato.
Passaggio 6: Modifica configurazione Gitlab. Apri il file /etc/gitlab/gitlab.Rb e aggiungi le seguenti righe in fondo:
registry_external_url 'https: // registry.gitlab.esempio.com
Se hai fatto tutto attentamente, la parte più complicata della configurazione è finita! Ora avrai un registro dei container attivo e funzionante, esegui solo:
$ sudo gitlab-ctl riconfigurazione
$ sudo gitlab-ctl start
Abilitare il registro e spingere le immagini
Ora che dobbiamo con noi stessi un registro dei container, creiamo un nuovo progetto utilizzando l'interfaccia utente di Gitlab Web e verifichiamo che funzioni.
Nella colonna di sinistra è possibile vedere una sezione di registro. Puoi fare clic su di esso per vedere istruzioni dettagliate su come accedere e spingere le immagini dentro. Torniamo al nostro desktop locale, che dovrebbe avere Docker installato su di esso.
Possiamo usarlo per costruire un semplice contenitore Hello-World e spingerlo in questo registro. Nel tuo sistema locale, crea una nuova cartella:
$ cd ~
$ mkdir sample_container
Al suo interno creiamo un file denominato Dockerfile e aggiungi i seguenti contenuti:
Da Ubuntu: ultimo
## i tuoi comandi personalizzati qui
Puoi mantenere il tuo Dockerfile con solo la prima riga. Sarà un semplice contenitore Ubuntu. Ora lo costruisci con un tag significativo (useremo il tag il mio progetto Che è uguale al nome del nostro progetto Gitlab, questo è importante). Nella stessa corsa di directory:
$ Docker Build -t Registry.gitlab.esempio.com//il mio progetto .
Ricorda di sostituire il tuo nome utente Gitlab invece del segnaposto usato nel comando sopra.
Crea solo un contenitore Ubuntu insieme a prendere l'immagine. Questa immagine è ciò che viene spinto. Se si modifica il contenitore e si crea una nuova immagine con esso (usando Docker Commit comando sarà una nuova immagine). Spingiamo l'immagine della vaniglia Ubuntu nel nostro registro.
Per prima cosa dobbiamo accedere usando il nostro nome utente e password Gitlab:
Registro di accesso $ Docker.gitlab.esempio.com
Quindi corri:
$ Docker Build -t Registry.gitlab.esempio.com/root/my-project .
$ Docker Push Registry.gitlab.esempio.com/root/my-project
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 questo. Se il comando Docker Push ha funzionato correttamente, puoi vedere una nuova immagine Docker che viene caricata (o spinta) nell'istanza Gitlab. Come è stato mostrato nel mio caso:
Il controllo della versione è molto più che una semplice gestione del codice sorgente. È costantemente migliorato per soddisfare una serie versatile di richieste che qualsiasi progetto software possa aver bisogno inaspettatamente. Il registro dei container è solo la punta dell'iceberg. È possibile avere condotte CD/CI, gestione avanzata di 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!