Поиск по сайту:

Как установить GitLab с Docker на Ubuntu 20.04 LTS


Это руководство существует для этих версий ОС

  • Ubuntu 18.04 (Бионический бобер)

На этой странице

  1. Шаг 1. Установите Docker и Docker Compose
  2. Шаг 2. Настройка каталога GitLab
    1. Создайте каталог данных GitLab и файл .env.
    2. Создание сценария docker-compose.yml
    3. Создание сертификатов SSL и DHAPARAM

    1. Проверка состояния службы GitLab внутри контейнера
    2. Доступ к контейнеру GitLab
    3. Редактировать конфигурацию 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.