Введение
GitLab — это веб-инструмент управления репозиториями Git, который помогает командам совместно работать над кодом. Кроме того, он предоставляет полную платформу DevOps с контролем версий, ревью кода, отслеживанием проблем (англ. issue) и CI/CD.
Одно из главных преимуществ GitLab заключается в универсальности и гибкости, поскольку его можно размещать локально и легко настраивать под потребности каждой команды. Помимо этого, он располагает широким спектром функциональностей и способов интеграции, таким образом, являясь наилучшим выбором для команд разработчиков.
Docker невероятно упрощает и ускоряет развертывание экземпляра GitLab. Вы можете сделать это одной командой, не беспокоясь об установке и настройке зависимостей вручную.
Это отличное решение для разработчиков ПО, которые хотят быстро и легко начать работу с GitLab.
Развертывание GitLab с помощью файла Compose от Sameersbn
Начинаем развертывание GitLab со скачивания актуальной версии файла Compose
:
wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml
Теперь генерируем 3 случайные строки длиной не менее 64 символов, открываем файл Compose
и применяем эти строки для:
GITLAB_SECRETS_OTP_KEY_BASE
. Используется для шифрования секретных ключей двухфакторной аутентификации (2FA) в базе данных. Ни один пользователь не сможет войти в систему с 2FA при потере этого ключа.GITLAB_SECRETS_DB_KEY_BASE
. Нужен для шифрования секретных ключей CI и импорта учетных данных. В случае изменения/потери вы уже не сможете задействовать секретные ключи CI.GITLAB_SECRETS_SECRET_KEY_BASE
. Требуется для генерации ссылок для сброса пароля и стандартных функций аутентификации. Вы не сможете сбросить пароли через электронную почту при ее потере/изменении.
Запуск экземпляра GitLab
docker-compose up
Развертывание GitLab вручную с помощью команд Docker
Вместо скачивания актуальной версии файла Compose
от Sameersbn вы можете вручную запустить контейнер GitLab, контейнер Redis и контейнер PostgreSQL за 3 простых шага.
Шаг 1. Запуск контейнера PostgreSQL
docker run --name gitlab-postgresql -d \
--env 'DB_NAME=gitlabhq_production' \
--env 'DB_USER=gitlab' --env 'DB_PASS=password' \
--env 'DB_EXTENSION=pg_trgm,btree_gist' \
--volume ./gitlab_postgresql:/var/lib/postgresql \
sameersbn/postgresql:12-20200524
Шаг 2. Запуск контейнера Redis
docker run --name gitlab-redis -d \
--volume ./gitlab_redis:/var/lib/redis \
sameersbn/redis:latest
Шаг 3. Запуск контейнера GitLab
docker run --name gitlab -d \
--link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
--publish 10022:22 --publish 10080:80 \
--env 'GITLAB_PORT=10080' --env 'GITLAB_SSH_PORT=10022' \
--env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \
--env 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' \
--env 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' \
--volume ./gitlab_data:/home/git/data \
sameersbn/gitlab:15.10.0
Примечание. Команды Docker используют общие тома (англ. volume), обозначенные как ./
. Они создаются в директории, в которой выполняется команда docker run
.
Доступ к экземпляру GitLab
После успешного запуска приложения GitLab, которое может занять несколько минут, вы можете перейти в свой браузер, направить его на http://localhost:10080
и установить пароль для аккаунта пользователя root
.
Теперь приложение GitLab готово для тестирования, и вы можете разместить в нем свой код.
Заключение
Процесс развертывания персонального экземпляра GitLab не является сверхсложной задачей и занимает менее 3 секунд, без учета времени загрузки образа и запуска.
Хотя данное руководство рассказывает о развертывании персонального экземпляра GitLab на компьютере, вы легко можете сделать это на любом сервере, тем самым обеспечивая к нему всеобщий доступ.
В этом случае рекомендую воспользоваться файлом Compose
от Sameersbn и добавить перед ним Traefik Proxy
, тем самым предоставляя доступ через публичное доменное имя, а не через IP.
Читайте также:
- Как использовать GitLab в качестве реестра Helm-чартов
- Обзор команд Git для отмены изменений
- Конструкция контейнера в Docker
Читайте нас в Telegram, VK и Дзен
Перевод статьи Paul Knulst: How To Deploy GitLab With Docker In 5 Seconds Or Less