Hvis du ikke ved, hvad et containerregister er, skal du ikke bekymre dig. Det bliver klart, når du faktisk skubber dit første containerbillede ind i en GitLab-forekomst. For øjeblikket skal du tænke på dem som arkiver til dine containerbilleder. Disse kører ikke containere, men kun billeder (almindelige data), der sidder i den eksterne GitLab-instans.
Hvorfor vil du have et GitLab containerregister?
Chancerne er, at din applikation er pakket enten som et enkelt Docker-billede eller som en samling af sådanne billeder. Dette betyder, at forskellige versioner vil blive knyttet til forskellige billeder, og containerregistret hjælper dig med at holde styr på dem individuelt samt se, hvilke der skal bundtes sammen i en bestemt udgivelse.
Registreringsdatabase er til containere, hvilket lager er kildekoden, og GitLab er et sted at håndtere dem alle.
Forudsætninger
- En fungerende GitLab-forekomst over HTTPS
- Rødadgang til forekomsten
- Adgang til at ændre dit domænenavns DNS-poster
Vi antager, at vores GitLab kører gitlab.eksempel.com .
Registrerings-DNS- og TLS-certifikater
Du skal være rodbruger for at aktivere containerregistreringsfunktionen på tværs af GitLab-forekomsten. Individuelle brugere kan derefter vælge at bruge denne funktion i deres respektive projekter, hvis de ønsker det. Der er to måder at gøre det på:
- Genbrug det eksisterende domænenavn og TLS-certifikater til gitlab.eksempel.com og kør registreringsdatabasen på en anden port.
- Peg på et andet domænenavn, lad os sige, registreringsdatabasen.gitlab.eksempel.com til den samme IP-adresse, hvor GitLab kører, og konfigurer registreringsdatabasen der.
Lad os gå med den anden mulighed, da den er meget mere professionel.
Trin 1: Tilføj en A-post for registreringsdatabasen.gitlab.eksempel.com peger på den samme IP, hvor din GitLab-forekomst kører.
Trin 2: Stop de gitlab-tjenester, der kører på din server.
$ sudo gitlab-ctl stopTrin 3: Tilføj ACME-klient certbot's PPA til dit system og installer certbot.
$ sudo add-apt-repository ppa: certbot / certbot$ sudo apt opdatering
$ sudo apt installerer certbot
Trin 4: Få certifikater fra Let's Encrypt.
$ certbot certonlyDu vil se en besked som:
“'
Hvordan vil du godkende med ACME CA?
--
1: Spin en midlertidig webserver (standalone)
2: Placer filer i webroot-biblioteket (webroot)
--
Vælg det passende nummer [1-2] og derefter [enter] (tryk på 'c' for at annullere): 1
“'
Dette vil derefter bede om din e-mail, bede dig om at acceptere deres servicevilkår og vigtigst af alt bede dig om dit domænenavn, som ville være registreringsdatabasen.gitlab.eksempel.com i vores eksempler. Du får en besked om, hvorvidt certifikaterne blev opnået. Hvis det var tilfældet, skal du gå videre til trin 5
Trin 5: Nu hvor vi har vores certs, er det tid til at placere dem under GitLab-relaterede mapper.
$ 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øgle
Sikr tilladelserne til dem:
$ chmod 600 / etc / gitlab / ssl / registry.gitlab.eksempel.com.*Som resten af vejledningen skal du sørge for at erstatte eksemplet.com med dit eksisterende domænenavn. Da det er hvad navnet på biblioteket skal være, hvor certbot har gemt certifikatet.
Trin 6: Rediger GitLab-konfiguration. Åbn filen / etc / gitlab / gitlab.rb og tilføj følgende linjer i bunden af det:
registry_external_url 'https: // registreringsdatabase.gitlab.eksempel.com 'Hvis du har gjort alt omhyggeligt, er den mest komplicerede del af opsætningen overstået! Du vil nu have en Container-registreringsdatabase i gang, bare kør:
$ sudo gitlab-ctl omkonfigurere$ sudo gitlab-ctl start
Aktivering af registreringsdatabasen og skubbe billeder
Nu hvor vi for os selv har et containerregister, lad os oprette et nyt projekt ved hjælp af GitLab web-UI og kontrollere, at det fungerer.
I kolonnen til venstre kan du se en sektion i registreringsdatabasen. Du kan klikke på den for at se detaljerede instruktioner om, hvordan du logger ind og skubber billeder ind i den. Lad os gå tilbage til vores lokale skrivebord, som Docker skal have installeret på det.
Vi kan bruge den til at bygge en simpel Hello-World container og skubbe den til denne registreringsdatabase. Opret en ny mappe i dit lokale system:
$ cd ~$ mkdir sample_container
Inde i det lad os oprette en fil med navnet Dockerfil og tilføj følgende indhold til det:
FRA ubuntu: nyeste## Dine brugerdefinerede kommandoer her
Du kan beholde din Dockerfile med kun den første linje. Det vil være en almindelig ubuntu-container. Nu bygger du det med et meningsfuldt tag (vi bruger tagget mit-projekt hvilket er det samme som vores GitLab-projektnavn, dette er vigtigt). I den samme katalogkørsel:
$ docker build -t registreringsdatabase.gitlab.eksempel.com /Husk at erstatte dit GitLab brugernavn i stedet for
Det opretter bare en Ubuntu-container sammen med at hente billedet. Dette billede er, hvad der bliver skubbet. Hvis du ændrer containeren og opretter et nyt billede med den (ved hjælp af docker begå kommando, det bliver et nyt billede). Lad os skubbe vanilla ubuntu-billedet til vores registreringsdatabase.
Først skal vi logge ind ved hjælp af vores Gitlab brugernavn og adgangskode:
$ docker login-registreringsdatabasen.gitlab.eksempel.comKør derefter:
$ docker build -t registreringsdatabase.gitlab.eksempel.com / root / mit-projekt .$ docker push-registreringsdatabasen.gitlab.eksempel.com / root / mit-projekt
Hvis du er usikker på, hvad din containers tag skal være, skal du besøge dit projekts registreringsside, og der vil være klare instruktioner til det. Hvis docker-push-kommandoen har fungeret korrekt, kan du se, at et nyt dockerbillede bliver uploadet (eller skubbet) i din GitLab-forekomst. Som det blev vist i mit tilfælde:
Konklusion
Versionskontrol er så meget mere end bare kildekodestyring. Det forbedres konstant for at imødekomme en alsidig vifte af krav, som ethvert softwareprojekt muligvis har brug for uventet. Containerregistret er kun toppen af isbjerget. Du kan have CD / CI-rørledninger, avanceret konfigurationsadministration, godkendelse via tokens og en lang række andre funktioner aktiveret i GitLab. Håber du har lært noget nyt om denne vidunderlige teknologi i denne vejledning.
Fortæl os, hvis der er noget, du vil have os til at dække!