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
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å:
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:
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!