Ja nezināt, kas ir konteineru reģistrs, neuztraucieties. Tas kļūs skaidrs, kad jūs faktiski ievietosiet pirmo konteinera attēlu GitLab instancē. Pagaidām domājiet par tiem kā savu konteineru attēlu krātuvēm. Tie nav palaist konteineri, bet tikai attēli (vienkārši dati), kas atrodas attālajā GitLab instancē.
Kāpēc jūs vēlaties GitLab konteineru reģistru?
Iespējams, ka jūsu lietojumprogramma ir iepakota kā viens Docker attēls vai šādu attēlu kolekcija. Tas nozīmē, ka dažādas versijas tiks saistītas ar dažādiem attēliem, un konteineru reģistrs palīdzēs jums tos izsekot atsevišķi, kā arī redzēt, kuri no tiem ir jāpievieno kopā konkrētajā laidienā.
Reģistrs ir konteineri, kas ir avota koda repozitorijs, un GitLab ir viena vieta, kur tos visus apstrādāt.
Priekšnoteikumi
- Darbojošs GitLab gadījums, izmantojot HTTPS
- Saknes piekļuve instancei
- Piekļuve, lai modificētu jūsu domēna vārda DNS ierakstus
Mēs pieņemam, ka mūsu GitLab darbojas gitlab.piemērs.com .
Reģistra DNS un TLS sertifikāti
Jums ir jābūt root lietotājam, lai iespējotu konteinera reģistra funkciju visā GitLab instancē. Pēc tam atsevišķi lietotāji, ja vēlas, var izvēlēties izmantot šo funkciju savos projektos. Ir divi veidi, kā to izdarīt:
- Atkārtoti izmantojiet domēna nosaukumu un TLS sertifikātus domēnam gitlab.piemērs.com un palaist reģistru citā ostā.
- Teiksim, norādiet citu domēna vārdu, reģistrā.gitlab.piemērs.com uz to pašu IP adresi, kur darbojas GitLab, un konfigurējiet tajā reģistru.
Pārejam ar otro variantu, jo tas ir daudz profesionālāks.
1. darbība: Pievienojiet A ierakstu reģistrā.gitlab.piemērs.com norādot uz to pašu IP, kur darbojas jūsu GitLab instance.
2. darbība: Pārtrauciet Gitlab pakalpojumu darbību jūsu serverī.
$ sudo gitlab-ctl stop3. solis: Pievienojiet ACME klientu certbot's PPA jūsu sistēmā un instalējiet certbot.
$ sudo add-apt-repository ppa: certbot / certbot$ sudo apt atjauninājums
$ sudo apt instalējiet certbot
4. solis: Iegūstiet sertifikātus no šifrēšanas.
$ certbot certonlyTiks parādīts šāds ziņojums:
""
Kā jūs vēlaties autentificēties ACME CA?
--
1: Pagrieziet pagaidu tīmekļa serveri (savrupu)
2: ievietojiet failus tīmekļa sakņu direktorijā (tīmekļa saknes)
--
Atlasiet atbilstošo numuru [1-2], pēc tam [ievadiet] (nospiediet taustiņu “c”, lai atceltu): 1
""
Pēc tam tiks pieprasīts jūsu e-pasts, tiks lūgts piekrist viņu pakalpojumu sniegšanas noteikumiem un, pats galvenais, lūgt jūsu domēna vārdu, kas būtu reģistrā.gitlab.piemērs.com mūsu piemērā. Jūs saņemsit ziņojumu, kurā teikts, vai sertifikāti ir iegūti. Ja tie bija, pārejiet pie 5. darbības
5. darbība: Tagad, kad mums ir mūsu sertifikāti, ir pienācis laiks tos ievietot ar GitLab saistītajos direktorijos.
$ cp / etc / letsencrypt / live / register.gitlab.piemērs.com / fullchain.pem/ etc / gitlab / ssl / register.gitlab.piemērs.crt
$ cp / etc / letsencrypt / live / register.gitlab.piemērs.com / privkey.pem
/ etc / gitlab / ssl / register.gitlab.piemērs.taustiņu
Nodrošiniet viņiem atļaujas:
$ chmod 600 / etc / gitlab / ssl / register.gitlab.piemērs.com.*Tāpat kā pārējā apmācība, pārliecinieties, ka esat aizstājis piemēru.com ar jūsu esošo domēna vārdu. Tā kā tāds būs direktorijas nosaukums, kur certbot ir saglabājis sertifikātu.
6. solis: Rediģēt GitLab konfigurāciju. Atveriet failu / etc / gitlab / gitlab.rb un tā apakšdaļā pievienojiet šādas rindas:
register_external_url 'https: // reģistrs.gitlab.piemērs.com 'Ja esat visu izdarījis uzmanīgi, vissarežģītākā iestatīšanas daļa ir beigusies! Tagad jums būs un darbosies konteineru reģistrs, vienkārši palaidiet:
$ sudo gitlab-ctl pārkonfigurēt$ sudo gitlab-ctl start
Reģistra iespējošana un attēlu stumšana
Tagad, kad mums ir konteineru reģistrs, izveidosim jaunu projektu, izmantojot GitLab tīmekļa lietotāja saskarni, un pārbaudīsim, vai tas darbojas.
Kreisajā kolonnā varat redzēt sadaļu Reģistrs. Jūs varat noklikšķināt uz tā, lai redzētu detalizētas instrukcijas, kā pieteikties un tajā ievietot attēlus. Atgriezīsimies pie mūsu vietējās darbvirsmas, kurā būtu jābūt instalētai Docker.
Mēs to varam izmantot, lai izveidotu vienkāršu labas pasaules konteineru un virzītu to uz šo reģistru. Vietējā sistēmā izveidojiet jaunu mapi:
$ cd ~$ mkdir sample_container
Tajā izveidosim failu ar nosaukumu Dockerfile un pievienojiet tam šādu saturu:
NO ubuntu: jaunākais## Jūsu pielāgotās komandas šeit
Jūs varat saglabāt savu Dockerfile tikai ar pirmo rindiņu. Tas būs vienkāršs ubuntu konteiners. Tagad jūs to izveidojat ar jēgpilnu tagu (mēs izmantosim tagu mans-projekts kas ir tāds pats kā mūsu GitLab projekta nosaukums, tas ir svarīgi). Tajā pašā direktorijā palaidiet:
$ docker build -t reģistrs.gitlab.piemērs.com /Neaizmirstiet aizstāt savu GitLab lietotājvārdu, nevis
Tas vienkārši izveido Ubuntu konteineru kopā ar attēla ielādi. Šis attēls ir tas, kas tiek virzīts. Ja pārveidojat konteineru un izveidojat ar to jaunu attēlu (izmantojot dokers apņemties tas būs jauns attēls). Pabīdīsim vaniļas ubuntu attēlu mūsu reģistrā.
Vispirms mums jāpiesakās, izmantojot mūsu Gitlab lietotājvārdu un paroli:
$ docker pieteikšanās reģistrs.gitlab.piemērs.comPēc tam palaidiet:
$ docker build -t reģistrs.gitlab.piemērs.com / root / my-project .$ docker push reģistrs.gitlab.piemērs.com / root / my-project
Ja neesat pārliecināts, kādam jābūt jūsu konteinera tagam, apmeklējiet projekta reģistra lapu, un tam būs skaidras instrukcijas. Ja docker push komanda ir darbojusies pareizi, jūs varat redzēt, kā jauns Docker attēls tiek augšupielādēts (vai virzīts) jūsu GitLab instancē. Tāpat kā tas tika parādīts manā gadījumā:
Secinājums
Versiju kontrole ir daudz vairāk nekā tikai avota koda pārvaldība. Tas nepārtraukti tiek pilnveidots, lai apmierinātu daudzveidīgas prasības, kas negaidīti var būt nepieciešamas jebkuram programmatūras projektam. Konteineru reģistrs ir tikai aisberga virsotne. GitLab jums var būt iespējoti CD / CI cauruļvadi, uzlabota konfigurācijas pārvaldība, autorizācija, izmantojot marķierus, un daudzas citas funkcijas. Ceru, ka šajā apmācībā uzzinājāt kaut ko jaunu par šo brīnišķīgo tehnoloģiju.
Paziņojiet mums, vai ir kaut kas tāds, ko vēlaties, lai mēs atspoguļotu!