Git

Настройка реестра контейнеров GitLab

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

Если вы не знаете, что такое реестр контейнеров, не волнуйтесь. Это станет ясно, когда вы действительно вставите свой первый образ контейнера в экземпляр GitLab. А пока считайте их репозиториями для образов ваших контейнеров. Это не запущенные контейнеры, а просто изображения (простые данные), находящиеся в удаленном экземпляре GitLab.

Зачем вам нужен реестр контейнеров GitLab?

Скорее всего, ваше приложение упаковано либо как один образ Docker, либо как набор таких образов. Это означает, что разные версии будут связаны с разными образами, а реестр контейнеров поможет вам отслеживать их по отдельности, а также увидеть, какие из них должны быть объединены в конкретный выпуск.

Реестр предназначен для контейнеров, а репозиторий - для исходного кода, а GitLab - это одно место для их всех.

Предпосылки

  1. Рабочий экземпляр GitLab через HTTPS
  2. Корневой доступ к экземпляру
  3. Доступ для изменения записей DNS вашего доменного имени

Предположим, наш GitLab работает на gitlab.пример.ком .

Реестр сертификатов DNS и TLS

Вы должны быть пользователем root, чтобы включить функцию реестра контейнеров в экземпляре GitLab. Затем отдельные пользователи могут выбрать использование этой функции в своих проектах, если они того пожелают. Это можно сделать двумя способами:

  1. Повторно использовать существующее доменное имя и сертификаты TLS для gitlab.пример.ком и запустите реестр на другом порту.
  2. Укажите другое доменное имя, скажем, реестр.gitlab.пример.ком на тот же IP-адрес, на котором запущен GitLab, и настройте реестр там.

Пойдем со вторым вариантом, так как он намного профессиональнее.

Шаг 1: Добавить запись A для реестр.gitlab.пример.ком указывающий на тот же IP-адрес, на котором запущен ваш экземпляр GitLab.

Шаг 2: Остановите службы gitlab, запущенные на вашем сервере.

$ sudo gitlab-ctl stop

Шаг 3: Добавить клиента ACME Certbot's PPA в вашу систему и установите certbot.

$ sudo add-apt-репозиторий ppa: certbot / certbot
$ sudo подходящее обновление
$ sudo apt install certbot

Шаг 4: Получите сертификаты от Let's Encrypt.

$ certbot Certonly

Вы увидите такое сообщение:
«'
Как вы хотите пройти аутентификацию в ACME CA?
--
1. Создайте временный веб-сервер (автономный)
2: Поместите файлы в каталог веб-корневого каталога (веб-корневой каталог)
--
Выберите соответствующий номер [1-2], затем [введите] (нажмите 'c' для отмены): 1
«'

Затем вам будет запрошен ваш адрес электронной почты, вас попросят согласиться с их условиями обслуживания и, что наиболее важно, вас попросят указать ваше доменное имя, которое будет реестр.gitlab.пример.ком в нашем примере. Вы получите сообщение о том, были ли получены сертификаты. Если да, переходите к шагу 5

Шаг 5: Теперь, когда у нас есть сертификаты, пришло время разместить их в каталогах, связанных с GitLab.

$ cp / и т. д. / letsencrypt / live / registry.gitlab.пример.com / fullchain.pem
/ и т. д. / gitlab / ssl / реестр.gitlab.пример.crt
$ cp / и т. д. / letsencrypt / live / registry.gitlab.пример.com / privkey.pem
/ и т. д. / gitlab / ssl / реестр.gitlab.пример.ключ

Обеспечьте для них разрешения:

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

Как и в остальной части руководства, убедитесь, что вы заменили example.com с вашим существующим доменным именем. Поскольку это будет имя каталога, в котором certbot хранит сертификат.

Шаг 6: Изменить конфигурацию GitLab. Откройте файл / etc / gitlab / gitlab.rb и добавьте в его нижнюю часть следующие строки:

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

Если вы все сделали аккуратно, самая сложная часть настройки окончена! Теперь у вас есть реестр контейнеров, просто запустите:

$ sudo gitlab-ctl перенастроить
$ sudo gitlab-ctl start

Включение реестра и отправка образов

Теперь, когда у нас есть Реестр контейнеров, давайте создадим новый проект, используя веб-интерфейс GitLab, и убедимся, что он работает.

В левом столбце вы можете увидеть раздел реестра.  Вы можете щелкнуть по нему, чтобы увидеть подробные инструкции о том, как войти в систему и вставить в него изображения. Вернемся к нашему локальному рабочему столу, на котором должен быть установлен Docker.

Мы можем использовать его для создания простого контейнера hello-world и поместить его в этот реестр. В вашей локальной системе создайте новую папку:

$ cd ~
$ mkdir sample_container

Внутри него создадим файл с именем Dockerfile и добавьте к нему следующее содержимое:

ОТ ubuntu: последний
## Здесь ваши пользовательские команды

Вы можете сохранить свой Dockerfile только в первой строке. Это будет простой контейнер ubuntu. Теперь вы создаете его с помощью значимого тега (мы будем использовать тег мой проект которое совпадает с названием нашего проекта GitLab, это важно). В этом же каталоге запустите:

$ docker build -t реестр.gitlab.пример.com //мой проект .

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

Он просто создает контейнер Ubuntu вместе с получением изображения. Это изображение - то, что подталкивают. Если вы измените контейнер и создадите с ним новый образ (используя докер коммит команда это будет новый образ). Давайте поместим образ vanilla ubuntu в наш реестр.

Сначала нам нужно войти в систему, используя наши имя пользователя и пароль Gitlab:

Реестр входа в $ docker.gitlab.пример.ком

Затем запустите:

$ docker build -t реестр.gitlab.пример.ком / корень / мой-проект .
$ docker push реестр.gitlab.пример.ком / корень / мой-проект

Если вы не уверены, каким должен быть тег вашего контейнера, посетите страницу реестра вашего проекта, и там будут четкие инструкции для него. Если команда docker push сработала правильно, вы можете увидеть, как новый образ докера загружается (или отправляется) в ваш экземпляр GitLab. Как это было показано в моем случае:

Заключение

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

Сообщите нам, если есть что-то, что вы хотите, чтобы мы осветили!

Как загрузить и играть в Sid Meier's Civilization VI в Linux
Введение в игру Civilization 6 - это современный подход к классической концепции, представленной в серии игр Age of Empires. Идея была довольно просто...
Как установить Doom и играть в него в Linux
Введение в Doom Серия Doom возникла в 90-х годах после выхода оригинальной Doom. Это мгновенно стал хитом, и с тех пор серия игр получила множество на...
Vulkan для пользователей Linux
С каждым новым поколением видеокарт мы видим, как разработчики игр расширяют границы графической точности и приближаются на шаг ближе к фотореализму. ...