やりたいこと
・Gitlab のバージョンが古いのでなんとかしたい
・運用しているGitlab をバージョンアップする前に検証用GitLabを作成する
・検証機で動作確認が取れたら運用しているコンテナ上のGitLabをバージョンアップする
・この記事では検証機を作ってバージョンアップを実施する過程を記しています
前提
OS Linux Ubuntu インストール済
Docker 19.03.1 インストール済
Gitlab (前)11.11.2 (後)当時の最新
Dockerを使ってGitLabを導入する
1.バージョンを指定してGitLabをDockerコンテナで立ち上げる(今回は11.11.2を導入)
sudo docker run --detach \
--hostname gitlab_host \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume /opt/docker/gitlab/etc:/etc/gitlab \
--volume /opt/docker/gitlab/var/log:/var/log/gitlab\
--volume /opt/docker/gitlab/var/opt:/var/opt/gitlab gitlab/gitlab-ce:11.11.2-ce.0
2.サーバーのIPにアクセスして検証用GitLabが立ち上がったことを確認する
バックアップファイルを配置する
運用しているGitLabからバックアップファイル「~_gitlab_backup.tar」を取得し、
検証用GitLabのVolumeに指定したディレクトリ内であればどこでもよいので配置する
(/opt/docker/gitlab/varとか)
以下のコマンドでコンテナ内に入り、バックアップファイルを移動する
#コンテナの中に入る(すでに入っている場合は省略)
docker exec -it gitlab /bin/bash
mv [バックアップファイル] /var/opt/gitlab/backups
リストアを実施する
**
#コンテナの中に入る(すでに入っている場合は省略)
docker exec -it gitlab /bin/bash
#「/var/opt/gitlab/backups」配下に「_gitlab_backup.tar」を移動する
# 一部停止
gitlab-ctl restart
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 停止を確認
gitlab-ctl status |grep down
# リストアを実行
# バックアップファイルが複数ある場合は「BACKUP=」でバージョンを指定すること
gitlab-rake gitlab:backup:restore
# リストアを確認
gitlab-ctl restart
gitlab-rake gitlab:check SANITIZE=true
検証用GitLabにアクセスし、データのリストアを確認する
バージョンをアップする
上記で作成したDockerコンテナのプロセス、イメージを削除する
アップしたいバージョンを指定して、sudo docker run ~を実行する
※注意
メジャーバージョンを上げるときは、マイナーバージョンの最新に上げてからが推奨されている