Jei nežinote, kas yra konteinerių registras, nesijaudinkite. Tai paaiškės, kai iš tikrųjų nustumsite savo pirmąjį konteinerio vaizdą į „GitLab“ egzempliorių. Kol kas pagalvokite apie juos kaip apie savo sudėtinių rodinių vaizdų saugyklas. Tai nėra veikiantys konteineriai, o tik vaizdai (paprasti duomenys), esantys nuotoliniame „GitLab“ pavyzdyje.
Kodėl norėtumėte „GitLab“ konteinerių registro?
Tikėtina, kad jūsų programa yra supakuota kaip vienas „Docker“ vaizdas arba tokių vaizdų rinkinys. Tai reiškia, kad skirtingos versijos bus susietos su skirtingais vaizdais, o konteinerių registras padės atskirai juos sekti, taip pat pamatyti, kurie iš jų turi būti susieti atskirame leidime.
Registras yra talpykloms, tai yra saugyklos šaltinio kodas, o „GitLab“ yra viena vieta, kur juos visus tvarkyti.
Būtinos sąlygos
- Veikiantis „GitLab“ egzempliorius per HTTPS
- Šaknies prieiga prie egzemplioriaus
- Prieiga pakeisti domeno vardo DNS įrašus
Mes manysime, kad mūsų „GitLab“ veikia gitlab.pavyzdys.com .
Registro DNS ir TLS sertifikatai
Norėdami įgalinti konteinerio registro funkciją visame „GitLab“ egzemplioriuje, turite būti pagrindinis vartotojas. Tada individualūs vartotojai gali pasirinkti naudoti šią funkciją savo projektuose, jei to nori. Tai galima padaryti dviem būdais:
- Pakartotinai naudokite esamą domeno vardą ir TLS sertifikatus gitlab.pavyzdys.com ir paleiskite registrą kitame uoste.
- Tarkime, nurodykite kitą domeno vardą, registrą.gitlab.pavyzdys.com tuo pačiu IP adresu, kuriame veikia „GitLab“, ir sukonfigūruokite ten registrą.
Pažvelkime į antrąjį variantą, nes jis yra daug profesionalesnis.
1 žingsnis: Pridėkite A įrašą registrą.gitlab.pavyzdys.com nurodydami tą patį IP, kuriame veikia jūsų „GitLab“ egzempliorius.
2 žingsnis: Sustabdykite „gitlab“ paslaugas, veikiančias jūsų serveryje.
$ sudo gitlab-ctl sustabdyti3 žingsnis: Pridėti ACME klientą certbot's PPA į savo sistemą ir įdiekite certbot.
$ sudo add-apt-repository ppa: certbot / certbot$ sudo apt atnaujinimas
$ sudo apt įdiekite certbot
4 žingsnis: Gaukite sertifikatus iš „Encrypt“.
$ certbot certonlyPamatysite tokį pranešimą:
„
Kaip norėtumėte autentifikuotis ACME CA?
--
1: Sukurkite laikiną interneto serverį (atskirą)
2: Įdėkite failus į žiniatinklio šaknų katalogą (žiniatinklio šaknis)
--
Pasirinkite reikiamą skaičių [1-2], tada [įveskite] (norėdami atšaukti paspauskite „c“): 1
„
Tada paprašys jūsų el. Pašto, paprašys sutikti su jų paslaugų teikimo sąlygomis ir, svarbiausia, paprašys jūsų domeno vardo, kuris būtų registrą.gitlab.pavyzdys.com mūsų pavyzdžiu. Gausite pranešimą, kuriame sakoma, ar sertifikatai buvo gauti. Jei jie buvo, pereikite prie 5 veiksmo
5 žingsnis: Dabar, kai turime savo pažymėjimus, atėjo laikas juos patalpinti su „GitLab“ susijusiais katalogais.
$ cp / etc / letsencrypt / live / register.gitlab.pavyzdys.com / fullchain.pem/ etc / gitlab / ssl / register.gitlab.pavyzdys.krt
$ cp / etc / letsencrypt / live / register.gitlab.pavyzdys.com / privkey.pem
/ etc / gitlab / ssl / register.gitlab.pavyzdys.Raktas
Apsaugokite jų teises:
$ chmod 600 / etc / gitlab / ssl / register.gitlab.pavyzdys.com.*Kaip ir likusią mokymo dalį, įsitikinkite, kad pakeitėte pavyzdį.com su esamu domeno vardu. Kadangi būtent toks bus katalogo pavadinimas, kuriame „certbot“ saugojo sertifikatą.
6 žingsnis: Redaguoti „GitLab“ konfigūraciją. Atidarykite failą / etc / gitlab / gitlab.rb ir jo apačioje pridėkite šias eilutes:
register_external_url 'https: // register.gitlab.pavyzdys.com “Jei viską atlikote atsargiai, baigėsi sudėtingiausia sąrankos dalis! Dabar turėsite veikti ir veikti „Container“ registrą, tiesiog paleiskite:
$ sudo gitlab-ctl perkonfigūruoti$ sudo gitlab-ctl pradžia
Įgalinti registrą ir stumti vaizdus
Dabar, kai turime sau konteinerių registrą, sukurkime naują projektą naudodami „GitLab“ žiniatinklio sąsają ir patikrinkime, ar jis veikia.
Kairiajame stulpelyje galite pamatyti registro skyrių. Galite spustelėti ant jo, kad pamatytumėte išsamias instrukcijas, kaip prisijungti ir į ją įterpti vaizdus. Grįžkime prie vietinio darbalaukio, kuriame turėtų būti įdiegta „Docker“.
Mes galime jį naudoti norėdami sukurti paprastą „labo pasaulio“ konteinerį ir perkelti jį į šį registrą. Vietinėje sistemoje sukurkite naują aplanką:
$ cd ~$ mkdir sample_container
Jo viduje sukurkime failą pavadinimu Dockerfile ir pridėkite šį turinį:
IŠ „ubuntu“: naujausias## Jūsų pasirinktos komandos čia
Galite laikyti „Dockerfile“ tik pirmoje eilutėje. Tai bus paprastas „ubuntu“ konteineris. Dabar jūs sukursite ją su prasminga žyma (mes naudosime žymą Mano projektas kuris yra toks pat kaip ir mūsų „GitLab“ projekto pavadinimas, tai svarbu). Tame pačiame kataloge paleiskite:
$ docker build -t registras.gitlab.pavyzdys.com /Nepamirškite pakeisti „GitLab“ vartotojo vardo, o ne
Tai tiesiog sukuria „Ubuntu“ talpyklą kartu su atvaizdu. Šis vaizdas yra tai, kas stumiama. Jei modifikuosite sudėtinį rodinį ir sukursite juo naują vaizdą (naudodami dokininkas įsipareigoja tai bus naujas vaizdas). Stumkime vanilės „ubuntu“ vaizdą į savo registrą.
Pirmiausia turime prisijungti naudodami „Gitlab“ vartotojo vardą ir slaptažodį:
$ docker prisijungimo registras.gitlab.pavyzdys.comTada paleiskite:
$ docker build -t registras.gitlab.pavyzdys.com / root / my-project .$ docker push registras.gitlab.pavyzdys.com / root / my-project
Jei nesate tikri, kokia turėtų būti jūsų konteinerio žyma, apsilankykite projekto registro puslapyje ir bus aiškios jo instrukcijos. Jei „Docker push“ komanda veikė tinkamai, galite pamatyti, kaip naujas „Docker“ vaizdas bus įkeltas (arba stumiamas) jūsų „GitLab“ egzemplioriuje. Kaip tai buvo parodyta mano atveju:
Išvada
Versijų valdymas yra ne tik šaltinio kodo valdymas. Jis nuolat tobulinamas, kad atitiktų įvairius reikalavimus, kurių netikėtai gali prireikti bet kuriam programinės įrangos projektui. Konteinerių registras yra tik ledkalnio viršūnė. „GitLab“ galite įgalinti CD / CI vamzdynus, išplėstinį konfigūracijos valdymą, įgaliojimą per žetonus ir daugybę kitų funkcijų. Tikiuosi, kad šioje pamokoje sužinojote ką nors naujo apie šią nuostabią technologiją.
Praneškite mums, ar yra kažkas, ką norite, kad mes padengtume!