Ako ne znate što je registar spremnika, ne brinite. To će postati jasno nakon što ustvari gurnete svoju prvu sliku spremnika u GitLab instancu. Za sada ih smatrajte spremištima za slike spremnika. To nisu pokrenuti spremnici, već samo slike (obični podaci) koje sjede u udaljenoj instanci GitLab.
Zašto biste željeli registar spremnika GitLab?
Šanse su da je vaša aplikacija zapakirana ili kao pojedinačna Dockerova slika ili kao zbirka takvih slika. To znači da će različite verzije biti povezane s različitim slikama, a registar spremnika pomoći će vam da ih pojedinačno pratite, kao i da vidite koje treba povezati u određeno izdanje.
Registar je za spremnike, što je spremište za izvorni kod, a GitLab je jedno mjesto za obradu svih.
Preduvjeti
- Radna instanca GitLaba preko HTTPS-a
- Korijenski pristup instanci
- Pristup za izmjenu DNS zapisa vašeg imena domene
Pretpostavit ćemo da naš GitLab radi gitlab.primjer.com .
Registrirajte DNS i TLS certifikate
Morate biti root korisnik da biste omogućili značajku registra spremnika na instanci GitLab. Pojedinačni korisnici mogu tada odabrati upotrebu ove značajke u svojim projektima, ako to žele. Postoje dva načina za to:
- Ponovno upotrijebite postojeće ime domene i TLS certifikate za gitlab.primjer.com i pokrenite registar na drugom portu.
- Recite na drugo ime domene, recimo, registar.gitlab.primjer.com na istu IP adresu na kojoj je pokrenut GitLab i tamo konfigurirajte registar.
Krenimo s drugom opcijom jer je puno profesionalnija.
Korak 1: Dodajte zapis A za registar.gitlab.primjer.com pokazujući na istu IP adresu na kojoj je pokrenuta vaša GitLab instanca.
Korak 2: Zaustavite rad gitlab usluga na vašem poslužitelju.
$ sudo gitlab-ctl stopKorak 3: Dodajte ACME klijenta certbotova PPA u vaš sustav i instalirajte certbot.
$ sudo add-apt-repository ppa: certbot / certbot$ sudo apt ažuriranje
$ sudo apt instaliraj certbot
Korak 4: Pribavite certifikate od Let's Encrypt.
$ certbot sigurnoVidjet ćete poruku poput:
"'
Kako želite provjeriti autentičnost pomoću ACME CA?
--
1: Zavrtite privremeni web poslužitelj (samostalni)
2: Postavljanje datoteka u webroot direktorij (webroot)
--
Odaberite odgovarajući broj [1-2], a zatim [unesite] (pritisnite 'c' da biste odustali): 1
"'
Tada ćete zatražiti vašu e-poštu, zatražiti od vas da pristanete na njihove uvjete pružanja usluge i, što je najvažnije, tražiti ime domene koje bi bilo registar.gitlab.primjer.com u našem primjeru. Dobit ćete poruku u kojoj se kaže jesu li certifikati dobiveni ili ne. Ako jesu, prijeđite na 5. korak
Korak 5: Sad kad imamo svoje certifikate, vrijeme je da ih smjestimo pod GitLab direktorije povezane.
$ cp / etc / letsencrypt / live / registry.gitlab.primjer.com / puni lanac.pem/ etc / gitlab / ssl / registry.gitlab.primjer.crt
$ cp / etc / letsencrypt / live / registry.gitlab.primjer.com / privkey.pem
/ etc / gitlab / ssl / registry.gitlab.primjer.ključ
Osigurajte im dozvole:
$ chmod 600 / etc / gitlab / ssl / registry.gitlab.primjer.com.*Kao i ostatak tutorijala, pobrinite se da zamijenite primjer.com s vašim postojećim imenom domene. Budući da će to biti ime direktorija, gdje je certbot pohranio certifikat.
Korak 6: Uredite GitLab konfiguraciju. Otvorite datoteku / etc / gitlab / gitlab.rb i dodajte sljedeće redove na dno:
registry_external_url 'https: // registry.gitlab.primjer.com 'Ako ste sve pažljivo učinili, najsloženiji dio postavljanja je gotov! Sada ćete imati i pokrenuti registar spremnika, samo pokrenite:
$ sudo gitlab-ctl rekonfiguriraj$ sudo gitlab-ctl start
Omogućavanje registra i guranje slika
Sad kad imamo za sebe Registar kontejnera, kreirajmo novi projekt pomoću web korisničkog sučelja GitLab i provjerite radi li.
U lijevom stupcu možete vidjeti odjeljak Registra. Možete kliknuti na nju da biste vidjeli detaljne upute za prijavu i ubacivanje slika u nju. Vratimo se našoj lokalnoj radnoj površini, na kojoj bi trebao biti instaliran Docker.
Možemo ga koristiti za izgradnju jednostavnog spremnika za hello-world i prosljeđivanje u ovaj registar. U vašem lokalnom sustavu stvorite novu mapu:
$ cd ~$ mkdir sample_container
U njemu stvorimo datoteku s imenom Dockerfile i dodajte mu sljedeći sadržaj:
IZ ubuntu-a: najnovije## Ovdje su vaše prilagođene naredbe
Dockerfile možete zadržati samo u prvom retku. To će biti obični ubuntu spremnik. Sada ga gradite sa značajnom oznakom (mi ćemo je koristiti moj projekt što je isto kao i naziv našeg GitLab projekta, ovo je važno). U istom direktoriju pokrenite:
$ docker build -t registar.gitlab.primjer.com /Ne zaboravite zamijeniti svoje korisničko ime za GitLab umjesto
Samo stvara Ubuntu spremnik zajedno s dohvaćanjem slike. Ova slika je ono što se gura. Ako izmijenite spremnik i stvorite novu sliku s njim (pomoću docker počiniti naredba to će biti nova slika). Ugurajmo sliku vanilije ubuntu u svoj registar.
Prvo se moramo prijaviti koristeći naše korisničko ime i lozinku za Gitlab:
$ docker registar za prijavu.gitlab.primjer.comZatim pokrenite:
$ docker build -t registar.gitlab.primjer.com / root / my-project .$ docker push registar.gitlab.primjer.com / root / my-project
Ako niste sigurni koja bi trebala biti oznaka vašeg spremnika, posjetite stranicu registra vašeg projekta i tamo će biti jasne upute. Ako je naredba guranja dockera ispravno funkcionirala, možete vidjeti novu sliku dockera koja se prebacuje (ili gura) u vašoj GitLab instanci. Kao što je prikazano u mom slučaju:
Zaključak
Kontrola verzija mnogo je više od samog upravljanja izvornim kodom. Stalno se poboljšava kako bi udovoljio svestranom nizu zahtjeva koji bi bilo kojem softverskom projektu mogli neočekivano zatrebati. Registar kontejnera samo je vrh sante leda. Možete imati CD / CI cjevovode, napredno upravljanje konfiguracijom, autorizaciju putem tokena i mnoštvo drugih funkcionalnosti omogućenih u GitLabu. Nadam se da ste u ovom vodiču naučili nešto novo o ovoj predivnoj tehnologiji.
Javite nam postoji li nešto što želite da pokrijemo!