Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ FreeBSD and Nix ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Gitlab Container Registry + python app


Gitlab Container Registry + python app

Docker Container Registry - сервис, позволяющий хранить и извлекать образы контейнеров Docker
Образы контейнеров - готовые к запуску приложения со всеми необходимыми зависимостями и библиотеками

GitLab Container Registry - встроенный приватный реестр Docker образов
После его активации вы сможете хранить и доставать образы прямо из проекта GitLab
Упрощает CI CD, в gitlab pipeline можно будет сразу делать docker push и docker pull

Container Registry в GitLab по умолчанию выключен

Включим Container Registry в GitLab

Packages & Registries (пункт будет доступен после включения)


Подключимся к контейнеру GitLab:
docker exec -it gitlab bash
               
Обновим пакеты:
apt update

Создадим директория хранения ssl сертификатов:
mkdir -p /etc/gitlab/ssl
           
Разрешения:
chmod 700 /etc/gitlab/ssl

Открытый ssl сертификат для создания ssl сертификата для url адреса:
cd /etc/gitlab/ssl/
openssl genrsa -out ca.key 2048

Cоздаем самоподписанный сертификат с использованием ранее созданного приватного ключа (ca.key):

Мы создали сертификат для registry.example.com

Вносим изменения в файл /etc/gitlab/gitlab.rb
cd /etc/gitlab
cp /etc/gitlab/gitlab.rb gitlab.rb_
vi /etc/gitlab/gitlab.rb

Добавьте в начало файла:

Делаем рестарт:
gitlab-ctl reconfigure
gitlab-ctl restart

Появился новый пункт меню в веб интерфейсе

Увидим описание:
Если вы ещё не вошли в систему, вам нужно пройти аутентификацию в реестре контейнеров, используя имя пользователя и пароль GitLab.
Если у вас включена двухфакторная аутентификация, используйте персональный токен доступа вместо пароля.

Пример аутентификации:
docker login registry.example.com

Вы можете добавить image в этот реестр с помощью следующих команд:
docker build -t registry.example.com/root/test .
docker push registry.example.com/root/test


Добавим регистри в /etc/hosts (ip указываете свой)

/etc/hosts
192.168.1.10 registry.example.com


Скопируем из контейнера гитлаб сертификаты на хост:
docker cp gitlab:/etc/gitlab/ssl/ca.crt .
docker cp gitlab:/etc/gitlab/ssl/registry.example.com.crt .

Далее копируем сертификаты в контейнер GitLab Runner:
docker cp ca.crt gitlab-runner:/etc/gitlab-runner/certs/
docker cp registry.example.com.crt gitlab-runner:/etc/gitlab-runner/certs/

Перезагрузим контейнер gitlab-runner:
docker restart gitlab-runner

Добавляем сертификаты ssl для докера на хосте:
sudo mkdir -p /etc/docker/certs.d/registry.example.com/
    
Копируем сертификаты:
sudo cp ca.crt registry.example.com.crt /etc/docker/certs.d/registry.example.com/

Пробуем подключится с хоста через консоль:
docker login registry.example.com
docker logout
docker service restart


Далее создаете деплойтокен
(в примере его имя было gitlab+deploy-token-1)

И перменную с значением KEY = DEPLOY_TOKEN_PASSWORD
(value = значение из деплойтокена выше)

Тестовый .gitlab-ci.yml


Тестовое python приложение

Dockerfile

requirements.txt

README.md

run.py

test_app.py

.gitlab-ci.yml

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.
Весь материал на сайте носит ознакомительный характер,
за его использование другими людьми, автор ответственности не несет.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект