Git

Настройка на регистъра на контейнера на GitLab

Настройка на регистъра на контейнера на GitLab
В последната ни публикация ви показахме как можете да настроите екземпляр на GitLab за управление на вашите организации или лични проекти. Препоръчахме ви да използвате FQDN и да имате наличен екземпляр GitLab през HTTPS. Тъй като повечето приложения са опаковани като контейнери, разумно е да създадете регистър на контейнери, където различни версии на вашето приложение, както и неговите различни компоненти могат да се съхраняват като изображения на Docker.

Ако не знаете какво е регистър на контейнери, не се притеснявайте. Ще стане ясно, след като действително натиснете първото си изображение в контейнер в екземпляр на GitLab. Засега мислете за тях като за хранилища за вашите изображения на контейнери. Това не са работещи контейнери, а просто изображения (обикновени данни), разположени в отдалечения екземпляр на GitLab.

Защо бихте искали регистър на контейнери GitLab?

Шансовете са, че вашето приложение е опаковано или като едно изображение на Docker, или като колекция от такива изображения. Това означава, че различните версии ще бъдат свързани с различни изображения, а регистърът на контейнерите ще ви помогне да ги проследявате поотделно, както и да видите кои трябва да бъдат обединени в дадена версия.

Регистърът е за контейнери, това, което е хранилището за изходния код, а GitLab е едно място за обработка на всички тях.

Предпоставки

  1. Работещ екземпляр на GitLab през HTTPS
  2. Основен достъп до екземпляра
  3. Достъп за промяна на DNS записите на вашето име на домейн

Ще приемем, че нашият GitLab работи gitlab.пример.com .

DNS и TLS сертификати на системния регистър

Трябва да сте root потребител, за да активирате функцията на регистъра на контейнери в екземпляра GitLab. След това отделни потребители могат да изберат да използват тази функция в съответните си проекти, ако желаят. Има два начина да го направите:

  1. Използвайте повторно съществуващото име на домейн и TLS сертификати за gitlab.пример.com и стартирайте системния регистър на друг порт.
  2. Да посочим друго име на домейн, да речем, регистър.gitlab.пример.com на същия IP адрес, където работи GitLab, и конфигурирайте регистъра там.

Нека да отидем с втория вариант, тъй като той е много по-професионален.

Етап 1: Добавете запис за регистър.gitlab.пример.com сочейки същия IP, където се изпълнява вашият GitLab екземпляр.

Стъпка 2: Спрете услугите на gitlab, работещи на вашия сървър.

$ sudo gitlab-ctl стоп

Стъпка 3: Добавете ACME клиент certbot's PPA към вашата система и инсталирайте certbot.

$ sudo add-apt-repository ppa: certbot / certbot
$ sudo apt актуализация
$ sudo apt инсталира certbot

Стъпка 4: Получете сертификати от Let's Encrypt.

$ certbot certonly

Ще видите съобщение като:

Как бихте искали да удостоверите с ACME CA?
--
1: Завъртете временен уеб сървър (самостоятелен)
2: Поставете файлове в директорията на webroot (webroot)
--
Изберете подходящия номер [1-2], след това [въведете] (натиснете 'c', за да отмените): 1

След това ще поискате вашия имейл, ще ви помолим да се съгласите с техните условия на услуга и, най-важното, ще поискате името на вашия домейн, което би било регистър.gitlab.пример.com в нашия пример. Ще получите съобщение, в което се казва дали сертификатите са получени или не. Ако бяха, преминете към стъпка 5

Стъпка 5: Сега, когато разполагаме с нашите сертификати, е време да ги поставим под директории, свързани с GitLab.

$ cp / etc / letsencrypt / live / registry.gitlab.пример.com / пълна верига.пем
/ etc / gitlab / ssl / registry.gitlab.пример.crt
$ cp / etc / letsencrypt / live / registry.gitlab.пример.com / privkey.пем
/ etc / gitlab / ssl / registry.gitlab.пример.ключ

Защитете разрешенията за тях:

$ chmod 600 / etc / gitlab / ssl / registry.gitlab.пример.com.*

Подобно на останалата част от урока, не забравяйте да замените примера.com със съществуващото ви име на домейн. Тъй като това ще бъде името на директорията, където certbot е съхранил сертификата.

Стъпка 6: Редактирайте конфигурацията на GitLab. Отворете файла / etc / gitlab / gitlab.rb и добавете следните редове в дъното му:

registry_external_url 'https: // регистър.gitlab.пример.com '

Ако сте направили всичко внимателно, най-сложната част от настройката е приключила! Вече ще имате готов и работещ регистър на контейнера, просто изпълнете:

$ sudo gitlab-ctl преконфигурира
$ sudo gitlab-ctl старт

Активиране на регистъра и натискане на изображения

Сега, когато имаме себе си регистър на контейнери, нека създадем нов проект, използвайки уеб потребителския интерфейс на GitLab и проверим дали работи.

В лявата колона можете да видите раздел Регистър.  Можете да кликнете върху него, за да видите подробни инструкции за това как да влезете и да натиснете изображения в него. Да се ​​върнем към нашия локален работен плот, на който трябва да има инсталиран Docker.

Можем да го използваме, за да изградим прост контейнер за здрав свят и да го изпратим в този регистър. Във вашата локална система създайте нова папка:

$ cd ~
$ mkdir sample_container

Вътре в него нека създадем файл с име Докер файл и добавете следното съдържание към него:

ОТ ubuntu: най-новата
## Вашите персонализирани команди тук

Можете да запазите вашия Dockerfile само с първия ред. Това ще бъде обикновен контейнер на ubuntu. Сега го изграждате със смислен маркер (ние ще използваме маркера Моят проект което е същото като името на нашия проект на GitLab, това е важно). В същата директория изпълнете:

$ docker build -t регистър.gitlab.пример.com //Моят проект .

Не забравяйте да замените вашето потребителско име за GitLab вместо заместител, използван в горната команда.

Той просто създава контейнер на Ubuntu заедно с извличането на изображението. Това изображение е това, което се бута. Ако модифицирате контейнера и създадете ново изображение с него (използвайки ангажиране на докер команда ще бъде ново изображение). Нека избутаме изображението на ванилия ubuntu в нашия регистър.

Първо трябва да влезем с нашето потребителско име и парола за Gitlab:

$ docker регистър за вход.gitlab.пример.com

След това изпълнете:

$ docker build -t регистър.gitlab.пример.com / root / my-project .
$ docker push регистър.gitlab.пример.com / root / my-project

Ако не сте сигурни какъв трябва да бъде маркерът на контейнера ви, посетете страницата на системния регистър на проекта си и ще има ясни инструкции за него. Ако командата за натискане на докер работи правилно, можете да видите ново изображение на докер, което се качва (или избутва) във вашия екземпляр на GitLab. Както беше показано в моя случай:

Заключение

Контролът на версиите е много повече от просто управление на изходния код. Непрекъснато се подобрява, за да отговори на разнообразен набор от изисквания, които всеки софтуерен проект може да се нуждае неочаквано. Регистърът на контейнери е само върхът на айсберга. Можете да имате CD / CI тръбопроводи, усъвършенствано управление на конфигурацията, оторизация чрез маркери и множество други функции, активирани в GitLab. Надявам се, че сте научили нещо ново за тази прекрасна технология в този урок.

Уведомете ни, ако има нещо, което искате да покрием!

Урок за OpenTTD
OpenTTD е една от най-популярните бизнес симулационни игри там. В тази игра трябва да създадете прекрасен транспортен бизнес. Въпреки това, ще започне...
SuperTuxKart за Linux
SuperTuxKart е страхотно заглавие, създадено да ви предостави безплатно изживяването на Mario Kart във вашата Linux система. Играта е доста предизвика...
Урок за битка за Уеснот
Битката за Уеснот е една от най-популярните стратегически игри с отворен код, които можете да играете по това време. Тази игра не само се разработва о...