В этой статье мы рассмотрим, как обновить инстанс Gitlab, который развернут в контейнере docker.
Проверьте текущую версию Gitlab через веб-интерфейс (нажмите вопрос в правом углу -> Help). Затем сверьтесь к картой обновления версий Gitlab (https://docs.gitlab.com/ee/update/#upgrade-paths).
Например, у вас установлена версия 13.10.2. Для обновления до 14.6.2 вам нужно выполнить целую цепочку последовательных обновлений 13.10.2 -> 13.12.15 -> 14.0.12 -> 14.3.6 => 14.6.2.
Перед началом обновления Gitlab сделайте резервную копию всех подключённых разделов (или снапшот, если у вас используется виртуальная машина).
Обновление gitlab в docker выполняется просто – вам нужно удалить старый контейнер и завернуть контейнер с новой версией образа. После окончания миграции на новую версию, нужно выполнить переход на следующую версию в цепочке. И так, пока не дойдёте до целевой версии Gitlab.
Остановите и удалите текущий контейнер (также удалите образ, если вы ранее установили его с тегом latest).
# docker stop gitlab
# docker rm gitlab
# docker image rm gitlab/gitlab-ce:latest
Теперь запустите образ с новой версией. Воспользуйтесь командой, которую вы использовали ранее при развертывании образа gitlab в первый раз (измените только тег образа):
sudo docker run --detach \ --log-opt max-size=1g \ --hostname gitlab.vmblog.ru \ --publish 443:443 --publish 80:80 --publish 22:22 \ --name gitlab \ --restart always \ --volume /data/gitlab/config:/etc/gitlab \ --volume /data/gitlab/logs:/var/log/gitlab \ --volume /data/gitlab/data:/var/opt/gitlab \ --volume /data/gitlab/registry:/var/opt/gitlab/registry \ --env GITLAB_OMNIBUS_CONFIG="external_url 'https://gitlab.vmblog.ru/';" \ gitlab/gitlab-ee:13.12.15-ee.0
Также можно использовать docker-compose:
version: '3.6' services: web: image: 'gitlab/gitlab-ee:13.12.15-ee.0' restart: always hostname: 'gitlab.vmblog.ru' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'https://gitlab.vmblog.ru/' # Add any other gitlab.rb configuration here, each on its own line ports: - '80:80' - '443:443' - '22:22' - '5000:5000' - '5001:5001' - '5005:5005' volumes: - '/data/gitlab/config:/etc/gitlab' - '/data/gitlab/logs:/var/log/gitlab' - '/data/gitlab/data:/var/opt/gitlab' - '/data/gitlab/registry/config:/var/opt/gitlab/registry' logging: options: max-size: 1g
Выполните из каталога с файлом docker-compose.yml:
# docker-compose up -d
Дождитесь запуска приложений и завершения миграции. Можно вывести лог контейнера:
# docker logs -f gitlab
Проверьте версию GitLab.
Начиная с 14 версии, в GitLab нужно выполнить ряд дополнительны действий при миграции. Их состояние можно отследить здесь: _https://gitlab.vmblog.ru/admin/background_migrations
После обновления версии, проверьте работу всех ваших ci и пуш\пул репозиториев. Если всё работает, выполните обновление до следующей версии. Шаги все те же, начиная с остановки и удаления текущего контейнера.