Gitlab переезд в докер контейнер.

В данной статье подробно разберем пример переезда GitLab с omnibus-установки в docker-установку с сохранением всех данных — репозиториев, мерджей, комментариев, артефактов и билдов (если такие есть). Давайте разберемся!

Итак, имеем неактуальную omnibus-установку GitLab из пакета gitlab-ce_10.6.4-ce.0_amd64.deb. Хотим получить актуальную версию (10.8.4-ce.0), установленную в docker-контейнере, для простоты обновления в будущем.

Сначала делаем резервную копию omnibus-установки GitLab:

sudo gitlab-rake gitlab:backup:create
По умолчанию резервная копия будет создана в каталоге /var/opt/gitlab/backups.

При создании резервных копий Gitlab бекапятся все git-репозитории, загруженные файлы и база данных. SSH-ключи не бекапятся, следует помнить об этом!

Из docker-образа устанавливаем GitLab той же версии, что и в omnibus-установке. Сделаем все красиво через docker-compose. Допустим у нас была версия 10.6.4 и не может она больше обновляться по разным причинам — например из-за РКН, или у вас старая дебиан на которую нельзя накатить обновления.
Создадим необходимые директории.

Запускаем gitlab

Теперь копируем созданный ранее бэкап из /var/opt/gitlab/backups/ в докер контейнер gitlab по такому же пути /var/log/gitlab.
В данном случаем

Опционально: изменим права доступа и владельца файла с бекапом внутри контейнера, на случай если он скопировался неправильно:

Находясь в контейнере запускаем процедуру восстановление данных из бекапа:

После восстановления проверим возможность логина в браузере, если все работает, то идем дальше.

Останавливаем и удаляем docker-контейнер с GitLab:

Правим docker-compose. Изменим версию gitlab на последнюю.

Ну а теперь запускаемся, только в режиме swarm.

Опубликовано в git

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.