# Gitlab in docker Полноценная сборка сервера Gitlab, его базы на psql, 4х раннеров и своего docker-registry, разворачеваемая на докер-хосте ## Преподготовка - нужен docker ``` curl https://get.docker.com -o install.sh && sh install.sh && apt install docker-compose-plugin ``` Подразумевается, что у вас есть `домен` и вы уже создали два поддомена `docker` и `gitlab` Подразумевается, что и гитлаб и регистри будут работать через один порт 443 Подразумевается, что у вас уже есть webproxy или traefik, которые возьмут на себя ингрессы контейнеров и выдачу (обновление) им сертификатов (сеть webpоxy как раз комментирована по этому - ее надо будет раскоментировать под свои условия) traefik можно поставить по этой [репке](https://github.com/vasyakrg/traefik) `labels` у контейнеров подготовлены, если у вас traefik, раскомментите эти поля `runner` - костомизирован только тем, что в нем встроена система авторегистрации на сервере. я размещаю папки так: /src/services/cfg - gitlab /srv/services/data - gitlab - gitlab/certs ## Запуск 1. переименовываем `.env.example` в `.env` 2. заполняем по максимому внимательно все переменные (кроме `RUNNER_TOKEN=`) 3. распаковываем в папке ssl-certs сертификаты и кладем в поинт, где хранятся данные (у меня это /srv/services/data/gitlab/certs) (сертификаты noname и нужны лишь для внутреннего взаимодействия между gitlab и registry компонентами). 3.1 Убедитесь что на всех ключах выставлены права в 0644 4. запускаем сборку `docker-compose up -d` 5. когда сервер запустится, вы войдете в систему под рутом, надо сходить в раздел раннеров (/admin/runners) и подсмотреть там токен, который и нужно будет заполнить в переменной `RUNNER_TOKEN=` и снова запустить `docker-compose up -d`, после чего раннеры перезапустятся и зарегистрируються в системе. ### Возможные проблемы Если некоторые из 4х раннеров ушли в ошибку `is not healthy and will be disabled!`, то нужно (на примере второго раннера): - `docker-compose stop runner_2` - `docker-compose rm runner_2` - `rm /srv/services/data/gitlab/gitlab-runner_2/config.toml` - `docker-compose up -d` То есть, останавливаем и удаляем контейнер. Удаляем конфиг и перезапускаем весь компоуз. Он поднимет удаленный ранее контейнер и снова его перенастроит и подключит. После чего раннер должен будет зарегистрироваться в гитлабе. ## Первый вход - root \ пароль указанный в переменной `GITLAB_ROOT_PASSWORD` ## Автор \ Author - **Vassiliy Yegorov** [vasyakrg](https://github.com/vasyakrg) - [youtube](https://youtube.com/realmanual) - [site](https://vk.com/realmanual) - [telegram](https://t.me/realmanual) - [any qiestions for me](https://t.me/realmanual_group)