Docker 部署GitLabs 版本升级 13.9.x -> 15.3.x
2022-09-02 16:18 假面Wilson 阅读(874) 评论(0) 编辑 收藏 举报
Gitlabs版本升级大版本不能直接跳级升级, 可以参考官方的升级路径。
本人是从13.9.x需要升级到最新的15.3.x。 参考官方路径结合自己的实际情况成功升级。
本人是从13.9.x需要升级到最新的15.3.x。 参考官方路径结合自己的实际情况成功升级。
13.9.0 -> 13.12.15 -> 14.0.12 ->14.1.8 -> 14.3.6 ->14.6.2 -> 14.9.5 ->14.10.5 ->15.0.3 -> 15.3.1
因为是基于Docker部署gitlabs,所以首先要在主机上创建挂载点,把gitlabs的数据挂载到主机上。
docker volume create gitlab_config docker volume create gitlab_logs docker volume create gitlab_data sudo docker run --detach \ --hostname bp.devops.gitlab \ --publish 443:443 --publish 80:80 --publish 21:22 \ --name gitlab \ --restart always \ --privileged=true \ --volume gitlab_config:/etc/gitlab \ --volume gitlab_logs:/var/log/gitlab \ --volume gitlab_data:/var/opt/gitlab \ gitlab/gitlab-ce:13.9.0-ce.0
接下来就是一步步的安装版本升级的路径是新创建docker 容器了。
sudo docker run --detach \ --hostname bp.devops.gitlab \ --publish 443:443 --publish 80:80 --publish 21:22 \ --name gitlab_13.12.15 \ --restart always \ --privileged=true \ --volume gitlab_config:/etc/gitlab \ --volume gitlab_logs:/var/log/gitlab \ --volume gitlab_data:/var/opt/gitlab \ gitlab/gitlab-ce:13.12.15-ce.0 sudo docker run --detach \ --hostname bp.devops.gitlab \ --publish 443:443 --publish 80:80 --publish 21:22 \ --name gitlab_14.0.12 \ --restart always \ --privileged=true \ --volume gitlab_config:/etc/gitlab \ --volume gitlab_logs:/var/log/gitlab \ --volume gitlab_data:/var/opt/gitlab \ gitlab/gitlab-ce:14.0.12-ce.0 sudo docker run --detach \ --hostname bp.devops.gitlab \ --publish 443:443 --publish 80:80 --publish 21:22 \ --name gitlab_14.1.8 \ --restart always \ --privileged=true \ --volume gitlab_config:/etc/gitlab \ --volume gitlab_logs:/var/log/gitlab \ --volume gitlab_data:/var/opt/gitlab \ gitlab/gitlab-ce:14.1.8-ce.0 sudo docker run --detach \ --hostname bp.devops.gitlab \ --publish 443:443 --publish 80:80 --publish 21:22 \ --name gitlab_14.3.6 \ --restart always \ --privileged=true \ --volume gitlab_config:/etc/gitlab \ --volume gitlab_logs:/var/log/gitlab \ --volume gitlab_data:/var/opt/gitlab \ gitlab/gitlab-ce:14.3.6-ce.0 sudo docker run --detach \ --hostname bp.devops.gitlab \ --publish 443:443 --publish 80:80 --publish 21:22 \ --name gitlab_14.6.2 \ --restart always \ --privileged=true \ --volume gitlab_config:/etc/gitlab \ --volume gitlab_logs:/var/log/gitlab \ --volume gitlab_data:/var/opt/gitlab \ gitlab/gitlab-ce:14.6.2-ce.0 sudo docker run --detach \ --hostname bp.devops.gitlab \ --publish 443:443 --publish 80:80 --publish 21:22 \ --name gitlab_14.9.5 \ --restart always \ --privileged=true \ --volume gitlab_config:/etc/gitlab \ --volume gitlab_logs:/var/log/gitlab \ --volume gitlab_data:/var/opt/gitlab \ gitlab/gitlab-ce:14.9.5-ce.0 sudo docker run --detach \ --hostname bp.devops.gitlab \ --publish 443:443 --publish 80:80 --publish 21:22 \ --name gitlab_14.10.5 \ --restart always \ --privileged=true \ --volume gitlab_config:/etc/gitlab \ --volume gitlab_logs:/var/log/gitlab \ --volume gitlab_data:/var/opt/gitlab \ gitlab/gitlab-ce:14.10.5-ce.0 sudo docker run --detach \ --hostname bp.devops.gitlab \ --publish 443:443 --publish 80:80 --publish 21:22 \ --name gitlab_15.0.3 \ --restart always \ --privileged=true \ --volume gitlab_config:/etc/gitlab \ --volume gitlab_logs:/var/log/gitlab \ --volume gitlab_data:/var/opt/gitlab \ gitlab/gitlab-ce:15.0.3-ce.0 sudo docker run --detach \ --hostname bp.devops.gitlab \ --publish 443:443 --publish 80:80 --publish 21:22 \ --name gitlab_latest \ --restart always \ --privileged=true \ --volume gitlab_config:/etc/gitlab \ --volume gitlab_logs:/var/log/gitlab \ --volume gitlab_data:/var/opt/gitlab \ gitlab/gitlab-ce
在升级过程中如果碰到报错: Database migration fails, 可以手动执行数据 Database migration。
docker exec -it {dockerID} /bin/bash gitlab-rake gitlab:background_migrations:finalize[ProjectNamespaces::BackfillProjectNamespaces,projects,id,'[null\,"up"]'] gitlab-rake gitlab:background_migrations:finalize[BackfillProjectSettings,projects,id,'[]'] gitlab-rake gitlab:background_migrations:finalize[BackfillIntegrationsTypeNew,integrations,id,'[]'] gitlab-rake db:migrate --trace gitlab-rake db:migrate:status | grep 'down' gitlab-ctl reconfigure apt dist-upgrade gitlab-ctl restart
以上手动执行还是失败,可以退回上一个版本,登录gitlabs的Admin Area - Background Migrations看看是否存在failed的,执行成功后,再升级即可。
gitlab 默认启用 Prometheus , 防止Gitlabs占用大量空间,可以关闭
docker exec -it {dockerID} /bin/bash vim gitlab/config/gitlab.rb 直接修改 # prometheus['enable'] = true prometheus['enable'] = false
gitlab-ctl stop
gitlab-ctl reconfigure
gitlab-ctl start
参考:
https://gitlab.com/gitlab-org/gitlab/-/issues/363230
https://gitlab.com/gitlab-org/gitlab/-/issues/360377