Git

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 de forskjellige komponentene, kan lagres som Docker-bilder.

Hvis du ikke vet hva et containerregister er, ikke bekymre deg. Det blir klart når du faktisk skyver ditt første containerbilde inn i en GitLab-forekomst. Foreløpig, tenk på dem som arkiver for containerbildene dine. Dette kjører ikke containere, men bare bilder (ren 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 som en samling av slike bilder. Dette betyr at forskjellige versjoner vil bli assosiert med forskjellige bilder, og containerregisteret vil hjelpe deg med å holde rede på dem individuelt, samt se hvilke som skal pakkes sammen i en bestemt utgivelse.

Register er for containere, hva lageret er for kildekoden og GitLab er ett sted å håndtere dem alle.

Forutsetninger

  1. En fungerende GitLab-forekomst over HTTPS
  2. Root-tilgang til forekomsten
  3. Tilgang til å endre domenenavnets DNS-poster

Vi kommer til å anta at GitLab kjører på gitlab.eksempel.com .

Register DNS og TLS sertifikater

Du må være rotbruker for å aktivere containerregistreringsfunksjonen i hele GitLab-forekomsten. Enkeltbrukere kan deretter velge å bruke denne funksjonen i sine respektive prosjekter, hvis de ønsker det. Det er to måter å gjøre det på:

  1. Bruk det eksisterende domenenavnet og TLS-sertifikatene på nytt for gitlab.eksempel.com og kjør registeret på en annen port.
  2. Pek på 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 A-post for register.gitlab.eksempel.com peker på samme IP der GitLab-forekomsten 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 installer certbot

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

$ certbot bare

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-katalogen (webroot)
--
Velg riktig nummer [1-2] og deretter [enter] (trykk 'c' for å avbryte): 1
“'

Dette vil da be om din e-post, be deg om å godta vilkårene for tjenesten, og, viktigst av alt, be deg om domenenavnet ditt som vil være register.gitlab.eksempel.com i vårt eksempel tilfelle. Du vil få en melding om at sertifikatene ble innhentet eller ikke. Hvis de var det, fortsett til trinn 5

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

$ cp / etc / letsencrypt / live / registry.gitlab.eksempel.com / fullchain.pem
/ etc / gitlab / ssl / registry.gitlab.eksempel.crt
$ cp / etc / letsencrypt / live / registry.gitlab.eksempel.com / privkey.pem
/ etc / gitlab / ssl / registry.gitlab.eksempel.nøkkel

Sikre tillatelsene til dem:

$ chmod 600 / etc / gitlab / ssl / registry.gitlab.eksempel.com.*

Som resten av opplæringen, sørg for at du erstatter eksemplet.com med ditt eksisterende domenenavn. Siden det er hva navnet på katalogen skal være, hvor certbot har lagret sertifikatet.

Trinn 6: Rediger GitLab-konfigurasjon. Åpne filen / etc / gitlab / gitlab.rb og legg til følgende linjer nederst på den:

registry_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 Container-register i gang, bare kjør:

$ sudo gitlab-ctl konfigurerer om
$ sudo gitlab-ctl start

Aktivere register og skyve bilder

Nå som vi har et containerregister, la oss lage et nytt prosjekt ved hjelp av GitLab web-UI og kontrollere at det fungerer.

I kolonnen til venstre kan du se en registerseksjon.  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 skal ha Docker installert på det.

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

$ cd ~
$ mkdir sample_container

Inne i det la oss lage en fil med navnet Dockerfil og legg til følgende innhold i den:

FRA ubuntu: siste
## Dine tilpassede kommandoer her

Du kan beholde Dockerfile med bare første linje. Det vil være en vanlig ubuntu-container. Nå bygger du den med en meningsfull tag (vi vil bruke taggen mitt prosjekt som er det samme som vårt GitLab-prosjektnavn, dette er viktig). I samme katalog kjøres:

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

Husk å erstatte GitLab-brukernavnet i stedet for plassholder brukt i kommandoen ovenfor.

Det oppretter bare en Ubuntu-container sammen med å hente bildet. Dette bildet er det som blir presset. Hvis du endrer beholderen og oppretter et nytt bilde med den (ved hjelp av docker begå kommandoen det blir et nytt bilde). La oss skyve vaniljeubuntu-bildet til registeret vårt.

Først må vi logge inn med vårt Gitlab brukernavn og passord:

$ docker påloggingsregister.gitlab.eksempel.com

Så løp:

$ docker build -t register.gitlab.eksempel.com / root / my-project .
$ docker push register.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 skikkelig, kan du se at et nytt docker-bilde blir lastet opp (eller presset) i GitLab-forekomsten. Som det ble vist i mitt tilfelle:

Konklusjon

Versjonskontroll er så mye mer enn bare kildekodeadministrasjon. Det forbedres kontinuerlig for å imøtekomme en allsidig rekke krav som ethvert programvareprosjekt kan trenge uventet. Containerregisteret er bare toppen av isfjellet. Du kan ha CD / CI-rørledninger, avansert konfigurasjonsadministrasjon, autorisasjon via tokens og en rekke andre funksjoner aktivert i GitLab. Håper du har lært noe nytt om denne fantastiske teknologien i denne opplæringen.

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

Hvordan laste ned og spille Sid Meier's Civilization VI på Linux
Introduksjon til spillet Civilization 6 er et moderne syn på det klassiske konseptet som ble introdusert i serien av Age of Empires-spillene. Ideen va...
Hvordan installere og spille Doom på Linux
Introduksjon til Doom Doom-serien stammer fra 90-tallet etter utgivelsen av den originale Doom. Det ble en øyeblikkelig suksess, og fra den tiden og u...
Vulkan for Linux-brukere
Med hver nye generasjon grafikkort ser vi spillutviklere skyve grensene for grafisk troskap og komme et skritt nærmere fotorealisme. Men til tross for...