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

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


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

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 18.04 (Bionic Beaver)

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

  1. Предпосылки
  2. Шаг 1. Настройка брандмауэра
  3. Шаг 2. Установка зависимостей
  4. Шаг 3. Изменение системного SSH-порта
  5. Шаг 4. Установите Docker и Docker Compose
  6. Шаг 5. Настройка томов Docker
  7. Шаг 6. Установите Gitlab с помощью Docker Compose
  8. Шаг 7. Настройка Gitlab
    1. Доступ к Gitlab
    2. Ограничение публичной регистрации
    3. Настройка профиля Gitlab
    4. Изменить корневой пароль
    5. Изменить имя пользователя
    6. Отключите метрики Prometheus и улучшите конфиденциальность

    1. Добавление ключа SSH
    2. Создание проекта

    Gitlab Server — это версия системы управления версиями Gitlab, размещенной в облаке, с открытым исходным кодом. Преимущество самостоятельного размещения ваших репозиториев по сравнению с облачным хостингом заключается в полном контроле над вашим кодом.

    Это руководство научит вас, как установить Gitlab Server с помощью Docker на сервер Ubuntu 22.04. Сервер Gitlab предлагает две версии — бесплатную версию Community и платную версию Enterprise. Мы будем устанавливать версию Community. Если вам нужны дополнительные функции, вы можете легко обновить его до версии Enterprise.

    Предпосылки

    • A server running Ubuntu 22.04.

    • A non-root user with sudo privileges.

    • Uncomplicated Firewall(UFW) is enabled and running.

    • A Fully Qualified domain name (FQDN) pointing to the server like, gitlab.example.com.

    • Everything is updated.

      $ sudo apt update && sudo apt upgrade
      

    Шаг 1. Настройте брандмауэр

    Первым шагом перед установкой любых пакетов является настройка брандмауэра для разрешения подключений HTTP и HTTPS.

    Проверьте состояние брандмауэра.

    $ sudo ufw status
    

    Вы должны увидеть что-то вроде следующего.

    Status: active
    
    To                         Action      From
    --                         ------      ----
    OpenSSH                    ALLOW       Anywhere
    OpenSSH (v6)               ALLOW       Anywhere (v6)
    

    Разрешить порты HTTP и HTTPS.

    $ sudo ufw allow http
    $ sudo ufw allow https
    

    Откройте порт 587 для получения почты через SMTP. Возможно, вы используете другой порт для почтовой программы SMTP.

    $ sudo ufw allow http
    $ sudo ufw allow 587
    

    Проверьте статус еще раз для подтверждения.

    $ sudo ufw status
    Status: active
    
    To                         Action      From
    --                         ------      ----
    OpenSSH                    ALLOW       Anywhere
    80/tcp                     ALLOW       Anywhere
    443                        ALLOW       Anywhere
    587                        ALLOW       Anywhere
    OpenSSH (v6)               ALLOW       Anywhere (v6)
    80/tcp (v6)                ALLOW       Anywhere (v6)
    443 (v6)                   ALLOW       Anywhere (v6)
    587 (v6)                   ALLOW       Anywhere (v6)
    

    Шаг 2 — Установите зависимости

    Перед установкой Gitlab нам нужно установить определенные пакеты, которые потребуются в ходе нашего руководства.

    $ sudo apt install ca-certificates curl openssh-server apt-transport-https gnupg lsb-release -y
    

    Некоторые из этих пакетов могут быть предварительно установлены в вашей системе.

    Шаг 3. Измените SSH-порт системы

    Gitlab использует порт SSH по умолчанию, который будет конфликтовать с портом SSH системы. Для достижения наилучших результатов лучше изменить системный порт по умолчанию.

    Для этого откройте файл /etc/ssh/sshd_config для редактирования.

    $ sudo nano /etc/ssh/sshd_config
    

    Найдите следующую строку, удалите решетку (#) перед ней и измените значение с 22 на любое другое по вашему выбору. Для нашего урока мы выбрали 2425, изменив

    #Port 22
    

    к

     Port 2425
    

    Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.

    Перезапустите службу SSH.

    $ sudo systemctl restart sshd
    

    Откройте порт 2425 в брандмауэре.

    $ sudo ufw allow 2425
    

    Закройте текущий сеанс SSH и повторно войдите в систему, используя новый порт.

    $ ssh <serverIP> -p 2425
    

    Шаг 4 — Установите Docker и Docker Compose

    Добавьте официальный GPG-ключ Dockers.

    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
    

    Выполните следующую команду, чтобы добавить репозиторий Docker.

    $ echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    

    Обновите систему, чтобы включить репозиторий Dockers.

    $ sudo apt update
    

    Установите Докер.

    $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    

    В этом руководстве будет использоваться плагин Docker Compose v2 вместо старого бинарного файла. Поэтому команда для его запуска изменилась с docker-compose на docker compose, и это отражено здесь.

    Docker работает с повышенными привилегиями, поэтому вам придется часто использовать sudo для запуска команд. Лучше всего добавить свою учетную запись пользователя Linux в группу пользователей docker.

    $ sudo usermod -aG docker ${USER}
    

    Переменная $ {USER} выбирает текущую системную учетную запись, вошедшую в систему. Если вы не вошли в систему с пользователем, которому хотите предоставить привилегии, замените $ {USER} на имя пользователя.

    Чтобы подать заявку на членство в новой группе, выйдите из сервера и снова войдите или используйте следующую команду. Вам будет предложено ввести пароль пользователя.

    $ su - $(USER)
    

    Шаг 5 — Настройте тома Docker

    Прежде чем приступить к установке, нам нужно указать местоположение для данных и конфигурации Gitlab, доступ к которым будет осуществляться через тома Docker.

    Создайте каталог тома Docker.

    $ sudo mkdir /srv/gitlab -p
    

    Создайте каталог для файла компоновки Docker.

    $ mkdir ~/gitlab-docker
    

    Перейдите в каталог.

    $ cd ~/gitlab-docker
    

    Создайте файл переменной среды и откройте его для редактирования.

    $ nano .env
    

    Вставьте следующий код, чтобы определить переменную $GITLAB_HOME.

    GITLAB_HOME=/srv/gitlab
    

    Контейнер Gitlab использует смонтированные на хосте тома для хранения постоянных данных. В следующей таблице показано сопоставление локального расположения каталогов Gitlab с расположением контейнеров и их соответствующим использованием.

    Local Location Container Location Usage
    $GITLAB_HOME/data /var/opt/gitlab For storing application data.
    $GITLAB_HOME/logs /var/log/gitlab For storing logs.
    $GITLAB_HOME/config /etc/gitlab For storing Gitlab configuration.

    Шаг 6. Установите Gitlab с помощью Docker Compose.

    Убедитесь, что вы находитесь в каталоге компоновки Docker в Gitlab.

    Создайте и откройте файл конфигурации Docker compose для редактирования.

    $ nano docker-compose.yml
    

    Вставьте в него следующий код.

    version: '3.6'
    services:
      web:
        image: 'gitlab/gitlab-ee:latest'
        container_name: 'gitlab-howtoforge'
        restart: always
        hostname: 'gitlab.example.com'
        environment:
          GITLAB_OMNIBUS_CONFIG: |
            external_url 'https://gitlab.example.com'
            gitlab_rails['smtp_enable'] = true
            gitlab_rails['smtp_address'] = "email-smtp.us-west-2.amazonaws.com"
            gitlab_rails['smtp_user_name'] = "SESUsername"
            gitlab_rails['smtp_password'] = "SESKey"
            gitlab_rails['smtp_domain'] = "example.com"
            gitlab_rails['smtp_enable_starttls_auto'] = true
            gitlab_rails['smtp_port'] = 587
            gitlab_rails['smtp_authentication'] = "login"
            gitlab_rails['gitlab_email_from'] = ''
            gitlab_rails['gitlab_email_reply_to'] = ''
            # Add any other gitlab.rb configuration here, each on its own line
        ports:
          - '80:80'
          - '443:443'
          - '22:22'
          - '587:587'
        volumes:
          - '$GITLAB_HOME/config:/etc/gitlab'
          - '$GITLAB_HOME/logs:/var/log/gitlab'
          - '$GITLAB_HOME/data:/var/opt/gitlab'
        shm_size: '256m'
    

    Давайте посмотрим на все параметры, определенные в файле.

    • image — это расположение образа Docker Gitlab на Dockerhub.
    • container_name позволяет применить метку к контейнеру Docker для использования при ссылке на контейнер в сети Docker.
    • restart указывает политику перезапуска контейнера. Установка его на always означает, что при выходе из контейнера он автоматически перезапускается.
    • имя хоста определяет внутреннее имя хоста контейнера или, в данном случае, URL-адрес, по которому будет установлен ваш Gitlab.
    • среда предоставляет переменную GITLAB_OMNIBUS_CONFIG, которая позволяет вам ввести любой параметр конфигурации Gitlab.
    • external_url относится к домену, в котором будет установлен ваш Gitlab. Использование протокола https обеспечивает автоматическую установку SSL-сертификата Lets Encrypt.
    • Сведения о SMTP. Мы включили сведения о SMTP, чтобы экземпляр Gitlab мог отправлять важные электронные письма и уведомления. Для нашего руководства мы используем сервис Amazon SES. Однако вы можете использовать любую услугу по вашему выбору. Ознакомьтесь с документацией Gitlab по почтовым программам SMTP, чтобы узнать, как их настроить.
    • ports указывают контейнеру публиковать порты или диапазон портов на хосте. Поскольку Gitlab нужны порты 22 (SSH), 80 (HTTP), 443 (HTTPS) и 587 (SMTP), они доступны системе. Если вы хотите, чтобы Gitlab использовал нестандартный порт на вашем сервере (вероятно, потому что он недоступен), вы должны сначала указать порт хоста, а затем порт контейнера. Например, поскольку ваш сервер уже использует порт SSH (22), вы можете указать Gitlab использовать SSH через другой порт, скажем, 3333. Затем вы должны изменить 22:22 в приведенном выше файле на 3333:22. Вам также потребуется добавить строку gitlab_rails[gitlab_shell_ssh_port]=3333 в GITLAB_OMNIBUS_CONFIG выше.
    • volume определяет каталоги на сервере для хранения постоянных данных. Как определено на шаге 5, $GITLAB_HOME теперь можно использовать в файле компоновки для монтирования соответствующих каталогов в контейнере.
    • shm_size относится к общей памяти, используемой контейнером. По умолчанию Docker выделяет 64 МБ для каталога общей памяти (подключенного в /dev/shm). Этого может оказаться недостаточно для метрик Prometheus, которые генерирует контейнер Gitlab. Таким образом, минимум 256 МБ общей памяти обеспечивает бесперебойную работу докера. Вы можете увеличить его значение в зависимости от оперативной памяти вашей системы. Кроме того, вы можете отключить метрики Prometheus из админки после установки. Мы рассмотрим это на следующем шаге.

    Запустите контейнер Gitlab Docker.

    $ docker compose up -d
    

    Завершение процесса займет несколько минут. Вы можете следить за прогрессом, используя журналы Docker.

    $ docker logs gitlab-howtoforge -f
    

    Нажмите Ctrl+C, чтобы выйти из мониторинга журнала.

    Вы можете проверить состояние контейнера Gitlab, используя следующую команду.

    $ docker ps
    

    Начиная с Gitlab 14.0, он автоматически генерирует пароль root и сохраняет его в файле initiall_root_password. Этот файл можно найти в каталоге /srv/gitlab/config. Выполните следующую команду, чтобы просмотреть пароль root.

    $ sudo cat /srv/gitlab/config/initial_root_password
    

    Вы получите аналогичный результат.

    # WARNING: This value is valid only in the following conditions
    #          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
    #          2. Password hasn't been changed manually, either via UI or via command line.
    #
    #          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
    
    Password: Hz3t7Etn18wB6VAfBWyDlYbN2VQdMCO0xIIENfDHcFo=
    
    # NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
    

    Скопируйте пароль и сохраните его для дальнейшего использования. Теперь, когда все настроено, мы можем приступить к настройке.

    Шаг 7 — Настройте Gitlab

    Доступ к Gitlab

    Откройте URL-адрес https://gitlab.example.com в своем браузере, и вы увидите следующий экран входа в систему.

    Введите root в качестве имени пользователя и пароля, которые вы получили на предыдущем шаге, чтобы войти в панель управления Gitlab. При входе вы попадете на следующий экран панели инструментов.

    Как видите, Gitlab уже создал проект для мониторинга экземпляра.

    Ограничить публичную регистрацию

    По умолчанию любой может создать учетную запись и получить доступ. Если вы этого не хотите, вы можете отключить его. К счастью, настройка для него отображается в виде всплывающего экрана на приборной панели. Нажмите кнопку «Выключить», чтобы ограничить публичную регистрацию в вашем экземпляре Gitlab. Это перенаправит вас на следующую страницу настроек.

    Снимите флажок «Регистрация включена», чтобы ограничить их. Нажмите кнопку Сохранить изменения, чтобы применить настройку.

    Если вы не видите всплывающее окно на панели инструментов, вы можете получить доступ к странице настроек, нажав кнопку «Меню» и перейдя оттуда в панель администратора.

    Оказавшись внутри панели администратора, наведите указатель мыши на параметр «Настройки» на левой боковой панели и щелкните подменю «Общие». Оттуда вы можете перейти к панели ограничений регистрации.

    Настроить профиль Gitlab

    Ваш профиль по умолчанию довольно скучный, и в нем нет ничего, что можно было бы показать. Чтобы изменить это, щелкните значок пользователя в верхнем левом углу, чтобы открыть раскрывающееся меню, и выберите параметр «Редактировать профиль».

    Вы попадете на страницу настроек профиля, где сможете добавить свое имя, адрес электронной почты и другую информацию о себе. Нажмите Обновить настройки профиля, когда закончите. Не возвращайтесь на домашнюю страницу, так как здесь нужно настроить еще кое-что.

    Изменить корневой пароль

    Это один из самых важных шагов. Вы должны немедленно изменить свой пароль root по умолчанию. В более ранних версиях Gitlab требовал, чтобы вы изменили его как часть установки, но теперь он сделал это необязательным. Чтобы изменить пароль, щелкните меню «Пароль» на левой боковой панели.

    Введите данные своего пароля и нажмите Сохранить пароль, чтобы внести изменения. Вы выйдете из своего экземпляра и должны будете войти снова.

    Изменение имени пользователя

    Вы можете изменить имя пользователя Gitlab по умолчанию с root на любое по вашему выбору. Для этого щелкните меню «Учетная запись» на левой боковой панели.

    Оказавшись на странице, введите новое имя пользователя и нажмите кнопку «Обновить имя пользователя», чтобы внести изменения. Вам снова будет предложено подтвердить. Нажмите кнопку «Обновить имя пользователя» еще раз, чтобы подтвердить изменение.

    Вы также должны включить здесь двухфакторную аутентификацию, чтобы повысить безопасность своей учетной записи.

    Отключите метрики Prometheus и улучшите конфиденциальность

    На предыдущем шаге мы обсудили увеличение размера общей памяти для дроплета и поддержание его на уровне не менее 256 МБ. В основном это требуется для хранения на диске данных, связанных с метриками Prometheus. Если вы не используете эту функцию, вам следует отключить эту функцию. Сделать это можно только после установки. Чтобы отключить его, откройте панель администратора из строки меню.

    Оказавшись в панели администратора, откройте пункт меню «Настройки» >> «Метрики и профилирование».

    На странице «Метрики» разверните раздел «Метрики — Prometheus» и снимите флажок «Включить конечную точку метрик работоспособности и производительности». Нажмите кнопку Сохранить изменения, чтобы применить изменение.

    Gitlab также собирает информацию об использовании при каждой установке. Если вы цените конфиденциальность и не хотите, чтобы это произошло, разверните параметр «Статистика использования» на той же странице и снимите флажок «Включить сервисный пинг». Нажмите кнопку Сохранить изменения, чтобы применить изменение.

    Шаг 8 - Создание вашего первого проекта

    Давайте попробуем создать наш первый проект и нажать коммит.

    Добавление вашего SSH-ключа

    Прежде чем двигаться дальше, мы должны добавить наш SSH-ключ. Это позволяет нам взаимодействовать с нашей установкой без использования каких-либо паролей. Если у вас есть ключ SSH, вы можете пропустить следующую команду. Если у вас его нет, вы можете создать его с помощью следующей команды.

    $ ssh-keygen -t ed25519 -C "gitlab.example.com"
    

    Эта команда является общей для macOS, Linux и Git Bash/WSL в Windows. Примите значения по умолчанию и введите надежный пароль. Мы создаем ключи SSH в терминале Windows Powershell.

    Generating public/private rsa key pair.
    Generating public/private ed25519 key pair.
    Enter file in which to save the key (C:\Users\<username>/.ssh/id_ed25519):
    Enter same passphrase again:
    Your identification has been saved in C:\Users\<username>/.ssh/id_ed25519.
    Your public key has been saved in C:\Users\<username>/.ssh/id_ed25519.pub.
    SHA256:CI3Ja1LSTN+j4LQnDYkAoP+DvZB8SWrD26zDyUBRbUY gitlab.example.com
    +--[ED25519 256]--+
    |* ..+E           |
    |. + / o o        |
    | o = B o .       |
    |. o B = S        |
    |.o X +           |
    | +X.*            |
    | .=B o           |
    +----[SHA256]-----+
    

    Добавьте идентификатор закрытого ключа в агент аутентификации SSH. Убедитесь, что служба агента аутентификации OpenSSH запущена, если вы работаете в Windows. Если вы используете Linux или macOS, выполните следующую команду.

    $ eval $(ssh-agent -s)
    

    Добавьте ключ.

    $ ssh-add C:\Users\<username>/.ssh/id_ed25519
    

    В Linux и macOS команда изменится на

    $ ssh-add ~/.ssh/id_ed25519
    

    Вам будет предложено ввести парольную фразу. Введите его, и ключ будет добавлен.

    Далее нам нужно сохранить эти настройки в файл ~/.ssh/config. В Windows это будет каталог C:\Users\\.ssh. Вставьте следующий код в конец файла.

    Host gitlab.example.com
      PreferredAuthentications publickey
      IdentityFile ~/.ssh/id_ed25519
    

    В этом файле имя пути останется одинаковым во всех операционных системах. Сохраните файл.

    Далее нам нужно скопировать открытый ключ в нашу учетную запись Gitlab. Вы можете отобразить свой открытый ключ с помощью следующей команды. Здесь имя пути снова будет работать во всех операционных системах.

    $ cat ~/.ssh/id_ed25519.pub
    

    Вы получите аналогичный результат.

    ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAml2KPhmGkdMWv7jksLKO13u3g1zI9CumKDQSpv7lYh gitlab.example.com
    

    Откройте настройки своего профиля в Gitlab и выберите меню SSH Keys на левой боковой панели.

    Вставьте ключ SSH в соответствующее поле и нажмите «Добавить ключ», чтобы продолжить.

    Далее нам нужно проверить, успешно ли работает наше SSH-соединение. Выполните следующую команду на терминале ПК.

    $ ssh -T 
    

    Вы получите аналогичный результат. Сначала вам будет предложено добавить ключ SSH в список известных хостов вашей системы. Введите да, чтобы продолжить. Вы также получите предупреждение о том, что ключ SSH для экземпляра Gitlab и IP-адрес вашего сервера не совпадают, и вас снова спросят, хотите ли вы продолжить. Введите да еще раз. Наконец, вы получите сообщение об успехе, подтверждающее ваше подключение к вашему экземпляру Gitlab.

    The authenticity of host 'gitlab.example.com (192.0.2.0)' can't be established.
    ECDSA key fingerprint is SHA256:g5mOqAY2A3lhXW0flnLGdSU7RrDnbRFKVJCquAhLXqk.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added 'gitlab.example.com' (ECDSA) to the list of known hosts.
    Warning: the ECDSA host key for 'gitlab.example.com' differs from the key for the IP address '192.0.2.0'
    Are you sure you want to continue connecting (yes/no)? yes
    Offending key for IP in C:\Users\navjo/.ssh/known_hosts:7
    Welcome to GitLab, @navjot!
    

    Теперь мы можем перейти к созданию нашего первого репозитория и сделать несколько коммитов.

    Создание проекта

    Каждый репозиторий в Gitlab принадлежит проекту. Проект включает в себя репозиторий, средство отслеживания проблем, запросы на слияние, вики, конвейеры непрерывной интеграции и непрерывной доставки (CI/CD) и множество других функций.

    Чтобы создать свой первый репозиторий, нажмите кнопку «Новый проект» на главной странице.

    Вы попадете на страницу «Новый проект», где вам будет предложено несколько вариантов создания нового проекта.

    Выберите опцию «Создать пустой проект», чтобы продолжить. На следующей странице введите название проекта. Выберите свое имя пользователя в раскрывающемся меню в опции «URL-адрес проекта». Установите слаг вашего проекта. Введите описание проекта, если хотите, и измените видимость проекта в соответствии с вашими потребностями. Вы можете инициализировать свой репозиторий с помощью файла README.

    Когда вы закончите, нажмите «Создать проект». Вы попадете на страницу репозитория с одним пустым файлом README.md.

    Теперь, когда наш репозиторий запущен, давайте попробуем добавить журнал изменений из командной строки. Введите следующие команды на своем компьютере, чтобы создать файл CHANGELOG и отправить его обратно в репозиторий. Убедитесь, что на вашем компьютере установлен Git.

    Первый шаг — клонировать репозиторий. Вы можете клонировать с помощью SSH или HTTPS. Клонировать с помощью SSH. Вас попросят ввести парольную фразу.

    $ git clone :user/howtoforge-test.git
    

    Введите остальные команды, чтобы создать и отправить файл CHANGELOG.

    $ cd howtoforge-test
    $ touch CHANGELOG  # Or create the file in your editor and enter a project description
    $ git add CHANGELOG
    $ git commit -m "add Changelog"
    $ git push -u origin main
    

    Во время команды push вам снова будет предложено ввести парольную фразу.

    Вернитесь на страницу своего проекта Gitlab, и вы увидите на ней файл CHANGELOG. Поздравляем! Вы успешно создали свой первый проект и зафиксировали в нем файл.

    Шаг 9 — Управление контейнером Gitlab

    Давайте посмотрим, как вы можете управлять контейнером Gitlab с помощью простых команд.

    Если в какой-то момент вы захотите остановить контейнер, введите следующую команду из каталога компоновки Docker.

    $ docker compose down
    

    Чтобы запустить их снова, введите следующую команду.

    $ docker compose up -d
    

    Если вы хотите изменить какой-либо параметр или добавить параметр в свой экземпляр Gitlab, вы можете сделать это, отредактировав файл docker-compose.yml в переменной GITLAB_OMNIBUS_CONFIG. После внесения изменений вам потребуется перезапустить контейнер, чтобы изменения вступили в силу. Выполните следующие команды, чтобы обновить контейнер с новой конфигурацией.

    $ docker compose down --remove-orphans
    $ docker compose up -d
    

    Чтобы перезапустить контейнер, введите следующую команду. Однако следующая команда перезапуска не улавливает никаких изменений, внесенных в файл компоновки Docker.

    $ docker compose restart
    

    Получите доступ к оболочке контейнера.

    $ docker exec -it <container name> bash
    

    Шаг 10 — Резервное копирование Gitlab

    Резервное копирование Gitlab можно выполнить с помощью одной команды.

    $ docker exec -t gitlab-howtoforge gitlab-backup create
    

    Файл резервной копии сохраняется в каталоге /srv/gitlab/data/backups. Эта резервная копия не содержит вашего файла конфигурации gitlab-secrets.json. Этот файл находится в каталоге /srv/gitlab/config. Поэтому вам необходимо сделать резервную копию этого файла отдельно. Существует еще один файл конфигурации, gitlab.rb, который содержит все настройки экземпляра Gitlab. Но в нашем случае мы использовали переменную GITLAB_OMNIBUS_CONFIG в нашем файле компоновки, поэтому этот файл не используется Gitlab. Чтобы внести какие-либо изменения в Gitlab, вам нужно будет определить их через переменную. Следовательно, вам также нужно будет сделать резервную копию файла компоновки.

    Вы можете создать запись cron для регулярного резервного копирования вашей установки Gitlab.

    Шаг 11 — Восстановите Gitlab

    Чтобы восстановить Gitlab, у вас должна быть работающая установка Gitlab в другой системе. Вам также потребуется скопировать каталог конфигурации и перезаписать существующую конфигурацию установки.

    Для восстановления Gitlab требуется выполнить несколько команд. Во-первых, вам нужно остановить процессы, подключенные к базе данных.

    $ docker exec -it <name of container> gitlab-ctl stop puma
    $ docker exec -it <name of container> gitlab-ctl stop sidekiq
    

    Замените на имя контейнера на вашем новом сервере.

    Прежде чем продолжить, убедитесь, что процессы отключены.

    $ docker exec -it <name of container> gitlab-ctl status
    

    Скопируйте файл резервной копии в каталог /srv/gitlab/data/backups. Создайте каталог, если он не существует.

    Запустите команду восстановления. Вам нужно удалить часть _gitlab_backup.tar имени файла из команды.

    $ docker exec -it <name of container> gitlab-backup restore BACKUP=11493107454_2018_04_25_10.6.4-ce
    

    Скопируйте файл gitlab-secrets.json и перезапишите существующую копию в каталоге /srv/gitlab/config нового сервера. Кроме того, скопируйте все настройки Gitlab из резервной копии файла компоновки в файл в новом контейнере.

    Перезапустите контейнер Gitlab. Мы не можем использовать команду docker compose restart напрямую, так как она не выберет какие-либо изменения, внесенные в нужный нам файл компоновки.

    $ docker compose down --remove-orphans
    $ docker compose up -d
    

    Проверьте Гитлаб.

    $ docker exec -it <name of container> gitlab-rake gitlab:check SANITIZE=true
    

    Шаг 12 — Обновите Gitlab

    Чтобы обновить Gitlab, первым шагом будет создание резервной копии, как показано на предыдущей остановке.

    Затем перейдите в каталог компоновки Gitlabs Docker.

    $ cd ~/gitlab-docker
    

    Затем остановите и удалите существующий контейнер. Однако ваши данные будут сохранены.

    $ docker compose down --remove-orphans
    

    Загрузите последнюю версию образа докера Gitlab.

    $ docker compose pull
    

    Запустите контейнеры снова.

    $ docker compose up -d
    

    Этот процесс подходит для обновления между младшими версиями Gitlab, но при обновлении до основной версии вам нужно будет выполнить дополнительные шаги и принять меры предосторожности. Вы должны обратиться к документации Gitlabs перед выполнением обновления.

    Заключение

    На этом мы завершаем наше руководство, в котором вы узнали, как установить Gitlab с помощью Docker на сервере Ubuntu 22.04. Вы также создали свой первый проект и закоммитили в него файл со своего ПК. Если у вас есть какие-либо вопросы, задайте их в комментариях ниже.