Gitlab Container Registry Setup

Gitlab Container Registry Setup
I vårt siste innlegg viste vi deg hvordan du kan sette opp en Gitlab -forekomst for å administrere organisasjonens eller dine personlige prosjekter. Vi anbefalte deg å bruke en FQDN og ha Gitlab -forekomsten tilgjengelig over HTTPS. Siden de fleste applikasjoner er pakket som containere, er det rimelig å sette opp et containerregister der forskjellige versjoner av applikasjonen din, så vel som det er forskjellige komponenter kan lagres som Docker -bilder.

Hvis du ikke vet hva et containerregister er, ikke bekymre deg. Det vil bli klart når du faktisk skyver ditt første containerbilde inn i en Gitlab -forekomst. Foreløpig, tenk på dem som depoter for containerbildene dine. Dette kjører ikke containere, men bare bilder (vanlige data) som sitter i den eksterne Gitlab -forekomsten.

Hvorfor vil du ha et Gitlab containerregister?

Sjansen er stor for at applikasjonen din er pakket enten som et enkelt Docker -bilde eller en samling av slike bilder. Dette betyr at forskjellige versjoner vil være assosiert med forskjellige bilder og containerregister vil hjelpe deg å holde rede på dem individuelt i tillegg til å se hvilke som skal samles sammen i en bestemt utgivelse.

Registeret er til containere, hvilket depot er å kildekode og gitlab er ett sted å håndtere dem alle.

Forutsetninger

  1. En fungerende gitlab -forekomst over https
  2. Rottilgang til forekomsten
  3. Tilgang for å endre Domain Name's DNS -poster

Vi kommer til å anta at Gitlab kjører videre Gitlab.eksempel.com .

Register DNS og TLS -sertifikater

Du må være rotbrukeren for å aktivere containerregisterfunksjonen på tvers av Gitlab -forekomsten. Individuelle brukere kan deretter velge å bruke denne funksjonen i sine respektive prosjekter, hvis de ønsker det. Det er to måter å gjøre det på:

  1. Gjenbruk det eksisterende domenenavnet og TLS -sertifikater for Gitlab.eksempel.com og kjøre registeret i en annen havn.
  2. Pek et annet domenenavn, la oss si, register.Gitlab.eksempel.com til samme IP -adresse der Gitlab kjører og konfigurerer registeret der.

La oss gå med det andre alternativet, da det er mye mer profesjonelt.

Trinn 1: Legg til en plate for register.Gitlab.eksempel.com peker på den samme IP -en der Gitlab -forekomsten din kjører.

Steg 2: Stopp Gitlab -tjenestene som kjører på serveren din.

$ sudo gitlab-ctl stopp

Trinn 3: Legg til ACME -klient Certbot's PPA til systemet ditt og installer certbot.

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

Trinn 4: Få sertifikater fra Let's Krypt.

$ certbot certonly

Du vil se en melding som:
“'
Hvordan vil du autentisere med acme ca?
--
1: Spinn opp en midlertidig webserver (frittstående)
2: Plasser filer i Webroot Directory (Webroot)
--
Velg riktig nummer [1-2] og deretter [Enter] (trykk 'C' for å avbryte): 1
“'

Dette vil da be om e -posten din, be deg om å gå med på deres vilkår, og viktigst av alt, be deg om domenenavnet ditt som vil være register.Gitlab.eksempel.com I vårt eksempel sak. Du vil få en melding om om sertifikatene ble innhentet eller ikke. Hvis de var det, gå videre til trinn 5

Trinn 5: Nå som vi har våre sertifikater, er det på tide å plassere dem under Gitlab -relaterte kataloger.

$ cp/etc/letsencrypt/live/register.Gitlab.eksempel.com/fullchain.Pem
/etc/gitlab/ssl/register.Gitlab.eksempel.crt
$ cp/etc/letsencrypt/live/register.Gitlab.eksempel.com/privkey.Pem
/etc/gitlab/ssl/register.Gitlab.eksempel.nøkkel

Sikre tillatelsene på dem:

$ chmod 600/etc/gitlab/ssl/register.Gitlab.eksempel.com.*

Som resten av opplæringen, må du sørge for at du erstatter eksemplet.com med ditt eksisterende domenenavn. Siden det er hva navnet på katalogen kommer til å være, der Certbot har lagret sertifikatet.

Trinn 6: Rediger gitlab -konfigurasjon. Åpne filen /etc/gitlab/gitlab.RB og legg til følgende linjer til bunnen av den:

register_external_url 'https: // register.Gitlab.eksempel.com '

Hvis du har gjort alt nøye, er den mest kompliserte delen av oppsettet over! Du vil nå ha et containerregister i gang, bare løp:

$ sudo gitlab-ctl rekonfigurer
$ sudo gitlab-ctl start

Aktivere register og skyve bilder

Nå som vi har for oss et containerregister, la oss opprette et nytt prosjekt ved hjelp av Gitlab Web UI og bekrefte at det fungerer.

På venstre kolonne kan du se en registerdel. Du kan klikke på den for å se detaljerte instruksjoner om hvordan du logger inn og skyver bilder inn i den. La oss gå tilbake til vårt lokale skrivebord, som burde ha docker installert på det.

Vi kan bruke den til å bygge en enkel hallo-verden container og skyve den til dette registeret. Lag en ny mappe i ditt lokale system:

$ CD ~
$ mkdir sample_container

Inne i den la oss lage en fil som heter Dockerfile og legg til følgende innhold i det:

Fra Ubuntu: Siste
## dine tilpassede kommandoer her

Du kan holde Dockerfile med bare den første linjen. Det vil være en vanlig Ubuntu -beholder. Nå bygger du den med en meningsfull tag (vi bruker taggen mitt prosjekt Som er det samme som vårt Gitlab -prosjektnavn, dette er viktig). I samme katalogkjøring:

$ docker build -t register.Gitlab.eksempel.com//mitt prosjekt .

Husk å erstatte Gitlab -brukernavnet ditt i stedet for plassholderen som brukes i kommandoen ovenfor.

Det skaper bare en Ubuntu -beholder sammen med å hente bildet. Dette bildet er det som blir presset. Hvis du endrer beholderen og oppretter et nytt bilde med den (bruker Docker forplikter seg Kommando vil det være et nytt bilde). La oss skyve vaniljen Ubuntu -bildet til vårt register.

Først må vi logge inn ved å bruke vårt Gitlab -brukernavn og passord:

$ docker påloggingsregister.Gitlab.eksempel.com

Løp deretter:

$ docker build -t register.Gitlab.eksempel.com/root/my-project .
$ Docker Push Registry.Gitlab.eksempel.com/root/my-project

Hvis du er usikker på hva containerens tag skal være, kan du gå til prosjektets registerside, og det vil være klare instruksjoner for det. Hvis Docker Push -kommandoen har fungert ordentlig, kan du se et nytt Docker -bilde bli lastet opp (eller presset) i Gitlab -forekomsten din. Som det ble vist i mitt tilfelle:

Konklusjon

Versjonskontroll er så mye mer enn bare kildekodeadministrasjon. Det forbedrer seg stadig å imøtekomme en allsidig rekke krav om at ethvert programvareprosjekt kan trenge uventet. Containerregisteret er bare toppen av isfjellet. Du kan ha CD/CI -rørledninger, avansert konfigurasjonsadministrasjon, autorisasjon via symboler og et mangfold av andre funksjonaliteter aktivert i Gitlab. Håper du lærte noe nytt om denne fantastiske teknologien i denne opplæringen.

Gi oss beskjed om det er noe du vil at vi skal dekke!