Skip to content

morzik45/gitlab

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gitlab in docker

Полноценная сборка сервера 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

Запуск

  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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%