Как развернуть GitLab с помощью Docker за 5 секунд 



Книга Как развернуть GitLab с помощью Docker за 5 секунд 

Введение 


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.



264   0  

Comments

    Ничего не найдено.