Git

GitLab Container Registry Setup

GitLab Container Registry Setup
I vårt senaste inlägg visade vi dig hur du kan ställa in en GitLab-instans för att hantera din organisations eller dina personliga projekt. Vi rekommenderade att du använder en FQDN och har GitLab-instansen tillgänglig via HTTPS. Eftersom de flesta applikationer är förpackade som containrar är det rimligt att skapa ett containerregister där olika versioner av din applikation, liksom dess olika komponenter, kan lagras som Docker-bilder.

Om du inte vet vad ett containerregister är, oroa dig inte. Det kommer att bli klart när du faktiskt trycker din första behållaravbildning till en GitLab-instans. För närvarande, tänk på dem som arkiv för dina containerbilder. Dessa kör inte behållare utan bara bilder (vanlig data) som sitter i fjärrinstansen för GitLab.

Varför vill du ha ett GitLab-containerregister?

Chansen är stor att din applikation är förpackad antingen som en enda Docker-bild eller som en samling av sådana bilder. Det betyder att olika versioner kommer att associeras med olika bilder och behållarregistret hjälper dig att hålla reda på dem individuellt och se vilka som ska buntas ihop i en viss version.

Registret är för behållare, vilket förvar är källkoden och GitLab är ett ställe att hantera dem alla.

Förutsättningar

  1. En fungerande GitLab-instans över HTTPS
  2. Rotåtkomst till instansen
  3. Åtkomst för att ändra ditt domännamns DNS-poster

Vi kommer att anta att vår GitLab körs gitlab.exempel.com .

Registrerings-DNS- och TLS-certifikat

Du måste vara rotanvändaren för att aktivera containerregistreringsfunktionen över GitLab-förekomsten. Enskilda användare kan sedan välja att använda den här funktionen i sina respektive projekt, om de önskar det. Det finns två sätt att göra det:

  1. Återanvänd befintligt domännamn och TLS-certifikat för gitlab.exempel.com och kör registret på en annan port.
  2. Peka på ett annat domännamn, låt oss säga, register.gitlab.exempel.com till samma IP-adress där GitLab körs och konfigurera registret där.

Låt oss gå med det andra alternativet eftersom det är mycket mer professionellt.

Steg 1: Lägg till en A-post för register.gitlab.exempel.com pekar på samma IP där din GitLab-instans körs.

Steg 2: Stoppa gitlab-tjänster som körs på din server.

$ sudo gitlab-ctl stopp

Steg 3: Lägg till ACME-klient certbot's PPA till ditt system och installera certbot.

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

Steg 4: Skaffa certifikat från Let's Encrypt.

$ certbot certonly

Du kommer att se ett meddelande som:
“'
Hur vill du autentisera med ACME CA?
--
1: Snurra upp en tillfällig webbserver (fristående)
2: Placera filer i webbrootkatalogen (webroot)
--
Välj lämpligt nummer [1-2] och sedan [enter] (tryck på 'c' för att avbryta): 1
“'

Detta kommer då att be om din e-post, be dig att godkänna deras användarvillkor och, viktigast av allt, be dig om ditt domännamn som skulle vara register.gitlab.exempel.com i vårt exempelfall. Du får ett meddelande som säger om certifikaten erhölls eller inte. Om de var det, fortsätt till steg 5

Steg 5: Nu när vi har våra certs är det dags att placera dem under GitLab-relaterade kataloger.

$ cp / etc / letsencrypt / live / registry.gitlab.exempel.com / fullchain.pem
/ etc / gitlab / ssl / registry.gitlab.exempel.crt
$ cp / etc / letsencrypt / live / registry.gitlab.exempel.com / privkey.pem
/ etc / gitlab / ssl / registry.gitlab.exempel.nyckel-

Säkra behörigheterna för dem:

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

Se till att du ersätter exemplet som resten av handledningen.com med ditt befintliga domännamn. Eftersom det är vad namnet på katalogen kommer att vara, där certbot har lagrat certifikatet.

Steg 6: Redigera GitLab-konfiguration. Öppna filen / etc / gitlab / gitlab.rb och lägg till följande rader längst ner på den:

registry_external_url 'https: // register.gitlab.exempel.com '

Om du har gjort allt noggrant är den mest komplicerade delen av installationen över! Du kommer nu att ha ett Container-register igång, kör bara:

$ sudo gitlab-ctl omkonfigurera
$ sudo gitlab-ctl start

Aktivera register och trycka på bilder

Nu när vi har för oss själva ett behållarregister, låt oss skapa ett nytt projekt med GitLab-webbgränssnittet och verifiera att det fungerar.

I den vänstra kolumnen kan du se ett registeravsnitt.  Du kan klicka på den för att se detaljerade instruktioner om hur du loggar in och skjuter bilder in i den. Låt oss gå tillbaka till vårt lokala skrivbord, som ska ha Docker installerat på det.

Vi kan använda den för att bygga en enkel hello-world container och driva den till det här registret. Skapa en ny mapp i ditt lokala system:

$ cd ~
$ mkdir sample_container

Inuti skapar vi en fil med namnet Dockerfil och lägg till följande innehåll i den:

FRÅN ubuntu: senaste
## Dina anpassade kommandon här

Du kan behålla din Dockerfile med bara första raden. Det blir en vanlig ubuntu-behållare. Nu bygger du den med en meningsfull tagg (vi kommer att använda taggen mitt projekt vilket är samma som vårt GitLab-projektnamn, detta är viktigt). I samma katalogkörning:

$ docker build -t-registret.gitlab.exempel.com //mitt projekt .

Kom ihåg att ersätta ditt GitLab-användarnamn istället för platshållare som används i ovanstående kommando.

Det skapar bara en Ubuntu-container tillsammans med att hämta bilden. Den här bilden är vad som skjuts. Om du ändrar behållaren och skapar en ny bild med den (med hjälp av docker begå kommandot det blir en ny bild). Låt oss driva vaniljubuntu-bilden till vårt register.

Först måste vi logga in med vårt Gitlab-användarnamn och lösenord:

$ docker-inloggningsregistret.gitlab.exempel.com

Kör sedan:

$ docker build -t-registret.gitlab.exempel.com / root / mitt-projekt .
$ docker push-registret.gitlab.exempel.com / root / mitt-projekt

Om du är osäker på vad din behållares tagg ska vara, besök ditt projekts registersida och det kommer att finnas tydliga instruktioner för det. Om docker-push-kommandot har fungerat ordentligt kan du se att en ny docker-bild laddas upp (eller skjuts) i din GitLab-instans. Som det visades i mitt fall:

Slutsats

Versionskontroll är så mycket mer än bara källkodshantering. Det förbättras ständigt för att tillgodose ett mångsidigt utbud av krav som alla programvaruprojekt kan behöva oväntat. Containerregistret är bara toppen av isberget. Du kan ha CD / CI-rörledningar, avancerad konfigurationshantering, auktorisering via tokens och en mängd andra funktioner aktiverade i GitLab. Hoppas att du har lärt dig något nytt om denna underbara teknik i den här handledningen.

Låt oss veta om det finns något som du vill att vi ska täcka!

OpenTTD-handledning
OpenTTD är ett av de mest populära affärssimuleringsspelen där ute. I det här spelet måste du skapa en underbar transportaffär. Du kommer dock att bör...
SuperTuxKart för Linux
SuperTuxKart är en fantastisk titel som är utformad för att ge dig Mario Kart-upplevelsen gratis på ditt Linux-system. Det är ganska utmanande och rol...
Battle for Wesnoth Tutorial
Slaget om Wesnoth är ett av de mest populära open source-strategispel som du kan spela just nu. Det här spelet har inte bara utvecklats under mycket l...