Как установить GitLab с Docker на Ubuntu 20.04 LTS
Это руководство существует для этих версий ОС
- Ubuntu 18.04 (Бионический бобер)
На этой странице
- Шаг 1. Установите Docker и Docker Compose
- Шаг 2. Настройка каталога GitLab
- Создайте каталог данных GitLab и файл .env.
- Создание сценария docker-compose.yml
- Создание сертификатов SSL и DHAPARAM
- Проверка состояния службы GitLab внутри контейнера
- Доступ к контейнеру GitLab
- Редактировать конфигурацию GitLab gitlab.rb
GitLab — это менеджер репозитория с открытым исходным кодом, основанный на Rails, разработанный GitLab Inc. Это веб-менеджер репозитория git, который позволяет вашей команде совместно работать над кодированием, тестированием и развертыванием приложений. GitLab предоставляет несколько функций, включая вики, отслеживание проблем, проверку кода и каналы активности.
В этом руководстве мы покажем вам, как установить GitLab с помощью Docker и Docker Compose. Кроме того, мы будем использовать Ubuntu 20.04 в качестве основной операционной системы и устанавливать докер из официального репозитория Ubuntu FocalFossa.
Предпосылки
- Сервер Ubuntu 20.04
- Минимум 4 ГБ ОЗУ
- Привилегии root
Что мы будем делать?
- Установите Docker и Docker Compose
- Настройка проекта GitLab Docker
- Создание контейнера GitLab
- Пост-установка GitLab
Шаг 1. Установите Docker и Docker Compose
Сначала мы установим пакеты docker и docker-compose в нашу систему Ubuntu 20.04. И мы будем использовать пакеты докеров, предоставленные официальным репозиторием Ubuntu FocalFossa.
Обновите все репозитории до последней версии и установите docker и docker-compose с помощью приведенной ниже команды apt.
sudo apt update
sudo apt install docker.io containerd docker-composeПосле завершения установки запустите службу Docker и добавьте ее в загрузку системы.
systemctl start docker
systemctl enable dockerЗатем проверьте службу Docker с помощью приведенной ниже команды systemctl.
systemctl status docker
В результате служба Docker запущена и работает на сервере Ubuntu 20.04.
Чтобы проверить установку докера, запустите команду docker «hello-world» ниже.
docker run hello-world
Теперь вы получите сообщение «hello-world» от докера, как показано ниже.
Теперь все готово для установки GitLab с помощью контейнера docker и docker-compose.
Шаг 2 — Настройка каталога GitLab
На этом этапе мы настроим каталог нашего проекта для установки GitLab.
Создайте новый каталог с именем gitlab и войдите в него.
mkdir -p gitlab; cd gitlab/
Каталог \gitlab\ будет использоваться для хранения всех сценариев докеров и конфигурации для GitLab.
Создайте каталог данных GitLab и файл .env
В этом разделе мы создадим новый каталог для хранения всех данных GitLab и создадим новый файл \.env\, который будет использоваться докером.
Создайте новый каталог данных GitLab \/srv/gitlab\, используя команду mkdir ниже.
mkdir -p /srv/gitlab/{config/ssl,logs,data}
Затем в каталоге проекта \gitlab\ создайте новый файл \.env\, используя редактор vim.
vim .env
Определите переменную среды \GITLAB_HOME\ со значением как каталог данных GitLab \/srv/gitlab\, как показано ниже.
GITLAB_HOME=/srv/gitlab
Сохранить и закрыть.
Сценарий docker-compose.yml будет использовать переменную среды для томов Gitlab.
Создайте скрипт docker-compose.yml
Далее мы создадим новый файл \docker-compose.yml\, который будет использоваться для сборки нашего контейнера GitLab.
Создайте новый файл docker-compose.yml с помощью приведенной ниже команды vim.
vim docker-compose.yml
Определите службу с именем \web\ с изображением последней версии gitlab-ce и измените \hostname\ на ваше доменное имя GitLab.
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'gitlab.hakase-labs.io'Настройте среду для установки Gitlab, как показано ниже. И обязательно измените \external_url\ на безопасный протокол HTTPS и измените \gitlab_rails[gitlab_shell_ssh_port]\ на альтернативный SSH-порт для контейнера.
environment:
GITLAB_OMNIBUS_CONFIG: |
# Add any other gitlab.rb configuration here, each on its own line
external_url 'https://gitlab.hakase-labs.io'
gitlab_rails['gitlab_shell_ssh_port'] = 2224
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"Затем определите порты для контейнера GitLab, как показано ниже. И обязательно измените порт SSH «2224» на свой собственный порт и совместите его с портом «gitlab_shell_ssh_port» сверху.
ports:
- '80:80'
- '443:443'
- '2224:22'После этого определите том или ваши каталоги данных GitLab. Все каталоги данных GitLab доступны в каталоге \GITLAB_HOME\, который задается переменной среды в файле \.env\ сверху.
volumes:
- '${GITLAB_HOME}/config:/etc/gitlab'
- '${GITLAB_HOME}/logs:/var/log/gitlab'
- '${GITLAB_HOME}/data:/var/opt/gitlab'
- '${GITLAB_HOME}/config/ssl:/etc/gitlab/ssl'Сохранить и закрыть.
Ниже приведена полная конфигурация.
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'gitlab.hakase-labs.io'
environment:
GITLAB_OMNIBUS_CONFIG: |
# Add any other gitlab.rb configuration here, each on its own line
external_url 'https://gitlab.hakase-labs.io'
gitlab_rails['gitlab_shell_ssh_port'] = 2224
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"
ports:
- '80:80'
- '443:443'
- '2224:22'
volumes:
- '${GITLAB_HOME}/config:/etc/gitlab'
- '${GITLAB_HOME}/logs:/var/log/gitlab'
- '${GITLAB_HOME}/data:/var/opt/gitlab'
- '${GITLAB_HOME}/config/ssl:/etc/gitlab/ssl'В результате был создан скрипт docker-compose.yml для установки проекта GitLab.
Создание сертификатов SSL и DHAPARAM
На этом этапе мы сгенерируем SSL Letsencrypt для нашей установки GitLab.
На своем сервере установите инструмент certbot с помощью приведенной ниже команды apt.
sudo apt install certbot
После этого сгенерируйте SSL-сертификат для GitLab с помощью приведенной ниже команды certbot.
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email -d gitlab.hakase-labs.io
Как только все будет завершено, ваши сертификаты будут доступны в каталоге /etc/letsencrypt/live/gitlab.yourdomain.
Теперь скопируйте файл сертификата «fullchain.pem» и «privkey.pem» в каталог «/srv/gitlab/config/ssl/\».
cp /etc/letsencrypt/live/gitlab.hakase-labs.io/fullchain.pem /srv/gitlab/config/ssl/
cp /etc/letsencrypt/live/gitlab.hakase-labs.io/privkey.pem /srv/gitlab/config/ssl/И SSL Letsencrypt для GitLab готов.
Затем сгенерируйте сертификат DHPARAM \dhparam.pem\ с помощью команды openssl ниже.
sudo openssl dhparam -out /srv/gitlab/config/ssl/dhparams.pem 2048
И все сертификаты для установки GitLab были сгенерированы и готовы для сборки контейнера GitLab.
Шаг 3 — Создайте контейнер GitLab
На этом этапе мы создадим наш контейнер GitLab, используя всю конфигурацию, которую мы создали сверху, и используя команду docker-compose.
Прежде чем идти дальше, вы можете проверить все доступные файлы в каталоге проекта \gitlab\ и структуру каталогов каталога данных GitLab.
ls -lah ~/gitlab/
tree /srv/gitlabНиже приведен результат, который вы получите.
Затем перейдите в каталог проекта \~/gitlab\ и создайте контейнер GitLab, используя приведенную ниже команду \docker-compose\.
cd ~/gitlab
docker-compose up -dКак только все будет завершено, вы получите результат, как показано ниже.
Теперь проверьте работающий контейнер и порты \LISTEN\ в вашей системе Ubuntu, используя следующую команду.
docker-compose ps
ss -plntИ вы получите контейнер «gitlab_web_1», запущенный и работающий, и у вас есть порт HTTP, HTTPS и SSH «2224», используемый контейнером GitLab.
Как видно, контейнер GitLab запущен и работает, и мы готовы установить нашу установку GitLab.
Шаг 4 — Установка поста GitLab
Откройте веб-браузер и введите URL-адрес установки GitLab в адресной строке.
И вы получите страницу сброса пароля GitLab.
Введите новый пароль для пользователя по умолчанию \root\ и нажмите кнопку \Изменить пароль\.
Теперь вы получите страницу входа в GitLab, как показано ниже.
Войдите в систему с пользователем по умолчанию \root\ и вашим новым паролем, затем нажмите \Войти\.
И вы получите панель инструментов GitLab, как показано ниже.
Как видно, установка GitLab с помощью docker и docker-compose завершена.
Шаг 5 — Базовая конфигурация контейнера GitLab
После установки GitLab вы можете добавить дополнительную конфигурацию в контейнер GitLab, не уничтожая контейнер GitLab. На этом этапе мы покажем вам базовый способ управления контейнером GitLab.
Прежде чем идти дальше, перейдите в каталог проекта \~/gitlab\ и проверьте статус контейнера, используя следующую команду.
cd ~/gitlab
docker-compose psВы получите запущенный и работающий контейнер GitLab.
Проверьте статус службы GitLab внутри контейнера
Чтобы проверить все службы GitLab внутри контейнера Gitlab, используйте команду «docker exec», как показано ниже.
sudo docker exec -it gitlab_web_1 gitlab-ctl status
Ниже приведен результат, который вы получите.
Как видно, все сервисные компоненты GitLab запущены и работают.
Доступ к контейнеру GitLab
Чтобы подключиться по SSH к контейнеру GitLab, вы используете «docker exec» с оболочкой «bash» внутри контейнера, как показано ниже.
sudo docker exec -it gitlab_web_1 /bin/bash
Теперь проверьте версию контейнера GitLab для Ubuntu по умолчанию.
cat /etc/lsb-release
Вы получите контейнер GitLab, основанный на Ubuntu 16.04 Xenial.
Теперь введите \exit\, чтобы выйти из контейнера GitLab.
Отредактируйте конфигурацию GitLab gitlab.rb
Затем, чтобы изменить конфигурацию GitLab внутри контейнера, вы можете использовать «редактор» по умолчанию в самом контейнере докеров.
Отредактируйте конфигурацию \/etc/gitlab/gitlab.rb\ внутри контейнера, используя приведенную ниже команду docker.
sudo docker exec -it gitlab_web_1 editor /etc/gitlab/gitlab.rb
Теперь вы получите редактор nano по умолчанию на экране с файлом конфигурации gitlab.rb.
Введите свою конфигурацию, сохраните и выйдите.
Затем, чтобы применить новые изменения к GitLab, перезапустите службу контейнеров Gitlab, используя приведенную ниже команду.
sudo docker restart gitlab_web_1
Теперь убедитесь, что нет ошибки, проверьте состояние контейнера GitLab с помощью следующей команды.
sudo docker-compose ps
Теперь убедитесь, что контейнер GitLab находится в состоянии «Работает (исправен)».
В результате была применена новая конфигурация для GitLab.
И, наконец, успешно завершена установка GitLab с помощью докера и docker-compose.