升级路线
参考链接:https://docs.gitlab.com/ee/update/#installation-using-docker
8.11.Z -> 8.12.0 -> 8.17.7 -> 9.5.10 -> 10.8.7 -> 11.11.8 -> 12.0.12 -> 12.1.17 -> 12.10.14 -> 13.0.14 -> 13.1.11 -> 13.5.4 - > latest 13.Y.Z
在主要版本升级期间,可能会发生更重要的迁移。为确保这些成功:
在主要版本跳转过程中,递增到第一个次要版本(X.0.Z)。
继续升级到较新的版本。
在升级到新的主要版本之前,请确保所有后台迁移已完全完成。
升级操作
想法: 对于非 docker 部署的 gitlab 升级操作可以是先将 gitlab 数据备份后,再将其数据目录挂载至 docker 容器内进行升级操作; 或者部署一个相同版本的 gitlab docker 镜像,通过备份包还原后再升级 从当前相同的 gitlab 版本开始,确保各指标正确无异常后开始升级。
10 版本至 10.8.7 最高版本
获取当前大版本的最新版
当前为 10.6.4 大版本的最新版为 10.8.7
docker pull gitlab/gitlab-ce:10.8.7-ce.0
修改 docker-compose.yml 的镜像
version: '3'
services:
git:
image: gitlab/gitlab-ce:10.8.7-ce.0
container_name: git
restart: always
network_mode: bridge
hostname: ${GIT_HOSTNAME}
ports:
- "${GIT_HTTP_PORT}:80"
- "${GIT_HTTPS_PORT}:443"
- "${GIT_SSH_PORT}:22"
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'ip或者域名'
gitlab_rails['gitlab_shell_ssh_port'] = 端口号
volumes:
- /opt/gitlab/config:/etc/gitlab:z
- /opt/gitlab/data:/var/opt/gitlab:z
- /opt/gitlab/logs:/var/log/gitlab:z
- /etc/localtime:/etc/localtime:ro
- /opt/gitlab/data/backups:/var/opt/gitlab/backups
后台作业检查
docker exec -it git bash
# 进入控制台
gitlab-rails console
# 作业检查
puts Sidekiq::Queue.new("background_migration").size
Sidekiq::ScheduledSet.new.select { |r| r.klass == 'BackgroundMigrationWorker' }.size
# 如果有作业则执行
scheduled_queue = Sidekiq::ScheduledSet.new
pending_job_classes = scheduled_queue.select { |job| job["class"] == "BackgroundMigrationWorker" }.map { |job| job["args"].first }.uniq
pending_job_classes.each { |job_class| Gitlab::BackgroundMigration.steal(job_class) }
# 退出
exit
重启
docker-compose up -d
日志查看
前端页面及配置检查
10.8.7 版本至 11.0.0 最低版本
修改 docker-compose.yml
配置文件中镜像的版本号
gitlab/gitlab-ce:11.0.0-ce.0
# 重启
docker-compose up -d
11 版本至 11.11.8 最高版本
修改 docker-compose.yml
配置文件中镜像的版本号
gitlab/gitlab-ce:11.11.8-ce.0
# 重启
docker-compose up -d
日志查看
升级普罗米修斯
两种方式
https://docs.gitlab.com/omnibus/update/gitlab_11_changes.html#114
# 跳过数据转换
gitlab-ctl prometheus-upgrade --skip-data-migration
gitlab-ctl prometheus-upgrade
前端页面及配置检查
11.11.8 版本至 12.0.0 最低版本
防止意外,升级前再备份一次
修改 docker-compose.yml
配置文件中镜像的版本号
gitlab/gitlab-ce:12.0.0-ce.0
# 重启
docker-compose up -d
日志查看
前端页面及配置检查
12 版本至 12.10.14 最高版本
如果您打算从升级12.0.Z
到12.10.Z
,则有必要在升级12.1.Z
之前执行中间升级到,12.10.Z
以避免#215141之类的问题。
# 依次替换镜像
gitlab/gitlab-ce:12.0.12-ce.0
gitlab/gitlab-ce:12.1.17-ce.0
gitlab/gitlab-ce:12.10.14-ce.0
# 重启
docker-compose up -d
gitlab/gitlab-ce:12.0.12-ce.0
grafana 在升级至 13 版本时将被更新
若执行了 gitlab-ctl prometheus-upgrade
未跳过则直接重置
gitlab/gitlab-ce:12.1.17-ce.0
gitlab/gitlab-ce:12.10.14-ce.0
验证是否正常,若正常则可以删除旧版数据库
sudo rm -rf /var/opt/gitlab/postgresql/data.9.6
sudo rm -f /var/opt/gitlab/postgresql-version.old
12.10.14 版本至 13.0.0 最低版本
gitlab/gitlab-ce:13.0.0-ce.0
# 重启
docker-compose up -d
新增
用户 GitLab Migration Bot
用户组 lost-and-found
13 版本至 13.y.z 最高版本
注意事项
- 在 13.1.0 中,Git 至少是 v2.24
- 具有较旧 Rails 版本的 GitLab 服务器将无法识别 CSRF 令牌-这可能会导致非 GET 请求失败 ```bash gitlab/gitlab-ce:13.0.14-ce.0 gitlab/gitlab-ce:13.1.11-ce.0 gitlab/gitlab-ce:13.5.4-ce.0 gitlab/gitlab-ce:13.7.9-ce.0
重启
gitlab/gitlab-ce:13.0.14-ce.0
gitlab/gitlab-ce:13.1.11-ce.0
gitlab/gitlab-ce:13.5.4-ce.0
须要先升级到这个版本,未来得及截图