Полноценная сборка сервера Gitlab, его базы на psql, 4х раннеров и своего docker-registry, разворачеваемая на докер-хосте
- нужен docker
curl https://get.docker.com -o install.sh && sh install.sh - нужен docker-compose
curl -L "https://github.com/docker/compose/releases/download/v2.3.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose Подразумевается, что у вас есть домен и вы уже создали два поддомена docker и gitlab Подразумевается, что и гитлаб и регистри будут работать через один порт 443 Подразумевается, что у вас уже есть webproxy или traefik, которые возьмут на себя ингрессы контейнеров и выдачу (обновление) им сертификатов (сеть webpоxy как раз комментирована по этому - ее надо будет раскоментировать под свои условия)
traefik можно поставить по этой репке
labels у контейнеров подготовлены, если у вас traefik, раскомментите эти поля runner - костомизирован только тем, что в нем встроена система авторегистрации на сервере.
я размещаю папки так: /src/services/cfg
- gitlab
/srv/services/data
- gitlab
- gitlab/certs
- переименовываем
.env.exampleв.env - заполняем по максимому внимательно все переменные (кроме
RUNNER_TOKEN=) - распаковываем в папке ssl-certs сертификаты и кладем в поинт, где хранятся данные (у меня это /srv/services/data/gitlab/certs) (сертификаты noname и нужны лишь для внутреннего взаимодействия между gitlab и registry компонентами). 3.1 Убедитесь что на всех ключах выставлены права в 0644
- запускаем сборку
docker-compose up -d - когда сервер запустится, вы войдете в систему под рутом, надо сходить в раздел раннеров (/admin/runners) и подсмотреть там токен, который и нужно будет заполнить в переменной
RUNNER_TOKEN=и снова запуститьdocker-compose up -d, после чего раннеры перезапустятся и зарегистрируються в системе.
Если некоторые из 4х раннеров ушли в ошибку is not healthy and will be disabled!, то нужно (на примере второго раннера):
docker-compose stop runner_2docker-compose rm runner_2rm /srv/services/data/gitlab/gitlab-runner_2/config.tomldocker-compose up -d
То есть, останавливаем и удаляем контейнер. Удаляем конфиг и перезапускаем весь компоуз. Он поднимет удаленный ранее контейнер и снова его перенастроит и подключит. После чего раннер должен будет зарегистрироваться в гитлабе.
- root \ пароль указанный в переменной
GITLAB_ROOT_PASSWORD
- Vassiliy Yegorov vasyakrg
- youtube
- site
- telegram
- any qiestions for me