Установка GitLab с использованием Docker Compose
Данная статья предназначена для тех, кто искал подробное и понятное руководство о том, как установить GitLab с использованием Docker Compose.
GitLab - это открытая платформа для разработки программного обеспечения с встроенным контролем версий, отслеживанием проблем, рецензированием кода, CI/CD и многим другим.
💾 Репозиторий, использованный в этом руководстве, можно найти на GitHub.
Мы будем использовать Traefik в качестве нашего обратного прокси. Он будет отвечать за получение криптографических сертификатов от Let’s Encrypt для ваших доменных имен и направлять запросы к соответствующим службам на основе этих доменов.
❗ Для получения криптографических сертификатов вам потребуются записи типа A во внешней зоне DNS, которые указывают на IP-адрес вашего сервера, где установлен Traefik. Если вы создали эти записи недавно, следует подождать, прежде чем начать установку сервисов. Полная репликация данных записей между DNS-серверами может занять от нескольких минут до 48 часов или даже больше в редких случаях.
В этом руководстве мы будем рассматривать тот случай, когда у вас уже есть сервер с установленной на нем операционной системой Ubuntu Server 22.04 LTS.
Подробно о том, как установить Ubuntu Server 22.04 LTS, вы можете прочитать в моем руководстве “Установка Ubuntu Server 22.04 LTS”.
Также на сервере должен быть установлен Docker Engine и Docker Compose.
Узнать о том, как установить Docker Engine на Ubuntu Server, вы можете, прочитав “Установка Docker Engine и Docker Compose на Ubuntu Server”.
Кроме того, на сервер должен быть установлен OpenSSH, а также открыт 22 порт, чтобы иметь возможность подключаться к серверу по протоколу SSH.
Для установки OpenSSH на сервер вы можете воспользоваться командой:
Если вы планируете подключиться к серверу, используя операционную систему Windows, то можете воспользоваться PuTTY или MobaXterm.
В данном руководстве рассматривается подключение к серверу при помощи терминального эмулятора iTerm2, установленного на операционную систему macOS.
💡 Обратите внимание, вам потребуется открыть следующие порты TCP для доступа к сервисам:
- TCP порт 80 - для получения бесплатного криптографического сертификата через центр сертификации Let’s Encrypt.
- TCP порт 443 - для доступа к веб-интерфейсу GitLab.
- TCP порт 2222 - для безопасных операций Git через SSH, управления SSH-ключами пользователя, зашифрованной передачи данных и задач администрирования сервера.
Подключаемся к серверу, на который планируется установить GitLab.
Теперь необходимо создать сети для ваших служб.
Создаем сеть для Traefik с помощью команды:
Создаем сеть для GitLab с помощью команды:
Далее нужно клонировать репозиторий, который содержит конфигурационные файлы, которые содержать все необходимые условия для работы GitLab.
Клонировать репозиторий можно с помощью команды:
Переходи в директорию с репозиторием с помощью команды:
Далее вам необходимо изменить переменные в файле .env
в соответствии с вашими требованиями.
💡 Обратите внимание, что .env
должен находиться в той же директории, что и gitlab-traefik-letsencrypt-docker-compose.yml
.
Теперь запустим GitLab с помощью команды:
Теперь давайте получим пароль для пользователя root. Это позволит вам войти в панель управления GitLab.
Используйте следующую команду:
Пароль для пользователя root успешно получен.
Для доступа к панели управления GitLab необходимо с рабочей станции перейти по ссылке https://gitlab.heyvaldemar.net, где gitlab.heyvaldemar.net — доменное имя моего сервиса. Соответственно, вам необходимо указать свое доменное имя, которое указывает на IP-адрес вашего сервера с установленным сервисом Traefik, который перенаправит запрос к GitLab.
💡 Обратите внимание, вам нужно указать доменное имя сервиса, заданное ранее в файле .env
.
Используйте root
в качестве имени пользователя и ранее полученный пароль, затем нажмите кнопку “Sign in”.
Добро пожаловать в панель управления GitLab.
Теперь давайте получим регистрационный токен для GitLab Runner и зарегистрируем его для обработки предстоящих заданий CI/CD.
GitLab Runner это открытый проект, который используется для выполнения ваших заданий CI/CD и отправки результатов обратно в GitLab.
Чтобы просмотреть конфигурацию GitLab Runner, перейдите по адресу https://gitlab.heyvaldemar.net/admin/runners, где gitlab.heyvaldemar.net — доменное имя моего сервиса. Соответственно, вам необходимо указать свое доменное имя, которое указывает на IP-адрес вашего сервера с установленным сервисом Traefik, который перенаправит запрос к GitLab.
💡 Обратите внимание, вам нужно указать доменное имя сервиса, заданное ранее в файле .env
.
Нажмите на три точки справа, чтобы получить доступ к меню, затем скопируйте регистрационный токен.
Теперь давайте зарегистрируем GitLab Runner.
Вернитесь в эмулятор терминала.
💡 Не забудьте заменить REGISTRATION_TOKEN
на значение “Registration token”, полученное на предыдущем шаге в веб-интерфейсе GitLab.
Для регистрации runner используйте следующую команду:
GitLab Runner был успешно зарегистрирован и готов к работе.
Вернитесь в веб-интерфейс и убедитесь, что GitLab Runner теперь в сети.
Для доступа к панели управления Traefik необходимо с рабочей станции перейти по ссылке https://traefik.gitlab.heyvaldemar.net, где traefik.gitlab.heyvaldemar.net — доменное имя моего сервиса. Соответственно, вам необходимо указать свое доменное имя, которое указывает на IP-адрес вашего сервера с установленным Traefik.
💡 Обратите внимание, вам нужно указать доменное имя сервиса, заданное ранее в файле .env
.
Указываем имя пользователя и пароль, заданный ранее в файле .env
, и нажимаем на кнопку “OK”.
Добро пожаловать в панель управления Traefik.
Мои курсы
🎓 Погрузитесь в мои обширные курсы по информационным технологиям, разработанные как для энтузиастов, так и для профессионалов. Независимо от того, хотите ли вы освоить Docker, покорить Kubernetes или углубить свои навыки в области DevOps, мои курсы предлагают структурированный путь к повышению вашего технического мастерства.
Мои услуги
💼 Загляните в мой каталог услуг и узнайте, как мы можем сделать вашу технологическую жизнь лучше. Будь то повышение эффективности вашей IT-инфраструктуры, развитие вашей карьеры или расширение технологических горизонтов — я здесь, чтобы помочь вам достичь ваших целей. От DevOps-трансформаций до сборки игровых компьютеров — давайте сделаем ваши технологии непревзойденными!
Пополнить запасы моего кофе
💡 Telegram | Boost
💖 PayPal
🏆 Patreon
💎 GitHub
🥤 BuyMeaCoffee
🍪 Ko-fi
Подпишись
⭐ Telegram | Блог
🎬 YouTube
🐦 Twitter
🎨 Instagram
🐘 Mastodon
🧵 Threads
🎸 Facebook
🧊 Bluesky
🎥 TikTok
💻 LinkedIn
📣 daily.dev Squad
🧩 LeetCode
🐈 GitHub
Этот контент создан искусственным интеллектом?
Нет! Каждая статья — результат моей работы, наполненной страстью к Docker и десятилетиями опыта в IT. Я применяю ИИ для улучшения грамматики, чтобы обеспечить четкость технических деталей, однако все идеи, стратегии и рекомендации исключительно мои. Этот метод иногда может вызывать срабатывание детекторов ИИ, но можете быть уверены, что вся представленная информация и опыт — подлинно мои.