Автоматический CI/CD контейнер по выполнению задач из GitLab. Расширен утилитами для работы внутри локальной сети для развертывания docker
-контейнеров через NAT посредством построения SSH-туннелей
-
Bash - основные скрипты автоматизации и построения туннелей
-
NodeJS - прокси для
docker-registry
сервера для реализации поддержки SSL при работе через NAT. Исходный кодproxy/server.js
Расположение: tools/
-
docker_clean.sh
- утилита очистки устаревшихdocker
образов на хост машине -
docker_commit.sh
- утилита для автоматического получения версии развернутого образа для сервиса вdocker
на хост машине. Используется для дальнейшего принятия решения по пересборке образа -
docker.sh
- утилита автоматического развертывания сервиса наdocker
машине посредствомdocker-compose
, поддерживается локальный режим работы, TLS шифрование, автоматическоеblue-green
развертывание и автоматическая очистка устаревших образов на машине для экономии места -
env.sh
- утилита перезаписи переменных окружения по префиксу--prefix
. Например, запуск с префиксомMKD_
экспортирует значение переменнойMKD_DB
поверх переменнойDB
-
init.sh
- утилита для печати пафосного логотипа CI/CD -
port_free.sh
- утилита автоматического определения свободного порта для проксирования на хосте -
ssh_keyscan.sh
- утилита автоматического сканирования подписей SSH соединения для хоста -
tg.sh
- утилита отправки уведомлений и файлов в Telegram, посредством выполнения запроса черезcurl
-
tunnel.sh
- утилита автоматического построения SSH-тунеля до хоста с поддержкой проксирования портов с локальной машины. Доступна поддержка параметров постоянного подключения--keep
и параметров для автоматического проксирования локальногоdocker-registry
, параметр--registry
-
version.sh
- утилита для вычислении версии образа/проекта, с учетом дополнительных параметров даты, префикса иhash
-комита. Для автоматического извлечения номера версия поддерживаются толькоnpm
-проекты с наличием файлаpackage.json
Расположение: /
-
ci.sh
- основная точка входа для утилит CI/CD -
deploy.self.sh
- скрипт для развертывания самого runner`а наdocker
машине -
init.sh
- скрипт начальной инициализации ключей и сертификатов для доступа к GitLab иdocker-registry
при развертывании -
register.sh
- запуск процесса регистрации runner`а с учетом переменных окружения, в том числе в средеdocker
-
run.sh
- запуск runner`а в интерактивном режиме с учетом переменных окружения, в том числе в средеdocker
-
tunnel.key.sh
- добавления SSH пользователя и ключа на хост машину для построения туннеля в будущем, хост передается первым аргументом
-
make runner-register
- регистрация нового runner`а в соответствии с environment переменными в режиме cli -
make runner-cli
- запуск интерактивной оболочки runner`а в соответствии с environment переменными в режиме cli -
make runner-deploy
- развертывание runner`а в экосистемеdocker
в соответствии с environment переменными -
make host=[HOST] tunnel-deploy
- автоматическое добавление SSH ключей для туннеля на хост машину, где[HOST]
- домен ил IP адрес машины с SSH доступом
Переменная | Описание | Пример |
---|---|---|
COMPOSE_PROJECT_NAME |
Идентификатор группы контейнеров для docker-compose |
dev |
COMPOSE_PATH_SEPARATOR |
Разделитель нескольких compose файлов |
: |
COMPOSE_FILE |
compose файлы для развертывания, переопределяются в порядке написания |
docker-compose.yml |
RUNNER_URL |
Адрес основного GitLab сервера для регистрации сборщика | https://gitlab |
RUNNER_DESCRIPTION |
Описание сборщика, будет отображаться в панели GitLab в общем списке | mkd |
RUNNER_TAGS |
Теги, для фильтрации задач по сборщикам | docker, ssh, windows |
RUNNER_CONCURRENT_JOB_COUNT |
Не обязательная переменная, указывается кол-во одновременных задач доступных сборщику, 1 по умолчанию | 2 |
VERSION |
Идентификатор версии сборщика | 1.0.0 |
VERSION_PROXY |
Идентификатор версии прокси для docker-registry |
1.1.0 |