首页 > 其他分享 >基于docker 安装的gitlab 升级

基于docker 安装的gitlab 升级

时间:2023-04-23 12:22:10浏览次数:49  
标签:ce.0 gitlab ce 升级 https docker com

gitlab 升级

背景

现在的gitlab版本是13.0.1,目标是 14.9.5 因为,这个版本及以后支持禅道集成。

升级过程

  1. 先备份数据
gitlab-rake gitlab:backup:create  
#有两个文件需要手工备份
#gitlab.rb路径:/etc/gitlab/gitlab.rb
#gitlab-secrets.json路径:/etc/gitlab/gitlab-secrets.json
#备份文件名称为1681869286_2023_04_19_13.0.1_gitlab_backup.tar
#运行备份数据到命令,备份文件默认在/var/opt/gitlab/backups ,如果没有请查找/etc/gitlab/gitlab.rb backup相关配置 容器的话也可以在对应的目录下找到 如 /usr/local/src/lyy/gitlab/data/backups
  1. 先升级到最近的主版本,之后再依次进行升级,在docker hub找到对应版本的镜像 然后修改docker-compose.yaml文件
image: 'gitlab/gitlab-ce:13.0.14-ce.0'
  1. 然后执行升级命令
docker-compose down && docker-compose up -d  
  1. 启动成功,确认正常进行下一个版本更新,版本顺序
docker pull gitlab/gitlab-ce:13.0.14-ce.0
docker pull gitlab/gitlab-ce:13.8.8-ce.0
docker pull gitlab/gitlab-ce:13.12.15-ce.0
docker pull gitlab/gitlab-ce:14.0.12-ce.0
docker pull gitlab/gitlab-ce:14.3.6-ce.0
docker pull gitlab/gitlab-ce:14.9.5-ce.0
docker pull gitlab/gitlab-ce:14.10.5-ce.0
docker pull gitlab/gitlab-ce:15.0.5-ce.0
docker pull gitlab/gitlab-ce:15.1.6-ce.0

遇到的问题

  1. 按照直觉上来就升级到目录版本,无法启动,提示请按照流程升级。
    升级
  2. 权限问题 执行如下命令
docker exec -it gitlab update-permissions
  1. 问题如下
gitlab | ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR:  relation "services" does not exist
gitlab | LINE 8:  WHERE a.attrelid = '"services"'::regclass

首先参考链接5,执行了如下语句

gitlab-rake gitlab:check SANITIZE=true 
# 不能登录了 error 500
gitlab-rake db:migrate:status 

然后参考链接6 使用gitlab-psql执行了修改sql语句

gitlab-psql
ALTER TABLE Integrations RENAME TO Services;  
  1. 问题如下
gitlab | ==> /var/log/gitlab/gitlab-exporter/current <==
gitlab | 2023-04-19_06:22:49.46623 E, [2023-04-19T06:22:49.466177 #796] ERROR -- : Error connecting to the database: ERROR:  column ci_builds.commands does not exist
gitlab | 2023-04-19_06:22:49.46624 LINE 30:     ci_builds.commands  

执行参考原来的升能,进行了小版本的替换,换成了14.1.8-ce.0。官方给的是此版本修复了这个问题。

  1. 问题如下
gitlab | ==> /var/log/gitlab/gitlab-rails/production.log <==
gitlab |   
gitlab | ActionView::Template::Error (PG::UndefinedTable: ERROR:  relation "integrations" does not exist
gitlab | LINE 8:  WHERE a.attrelid = '"integrations"'::regclass  

受第四个问题的影响,和查了相关的资料,就是把之前改过的表再手动改回来

gitlab-psql
ALTER TABLE Services RENAME TO Integrations; 
  1. 问题如下
StandardError: An error has occurred, all later migrations canceled:

Expected batched background migration for the given configuration to be marked as 'finished', but it is 'active':
  {:job_class_name=>"CopyColumnUsingBackgroundMigrationJob", :table_name=>"push_event_payloads", :column_name=>"event_id", :job_arguments=>[["event_id"], ["event_id_convert_to_bigint"]]}

参考链接8,9 执行如下语句

# 此命令是报错提示要执行的
sudo gitlab-rake gitlab:background_migrations:finalize[CopyColumnUsingBackgroundMigrationJob,push_event_payloads,event_id,'[["event_id"]\, ["event_id_convert_to_bigint"]]']
sudo gitlab-rake db:migrate
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart  

参考文章

  1. https://docs.gitlab.com/ee/update/
  2. https://www.cnblogs.com/faberbeta/p/16341131.html
  3. https://www.cnblogs.com/faberbeta/p/16341131.html
  4. https://www.cnblogs.com/colder/p/16650365.html
  5. https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/6352
  6. https://stackoverflow.com/questions/71927588/gitlab-ce-500-error-after-upgrade-downgrade
  7. https://docs.gitlab.com/ee/update/plan_your_upgrade.html
  8. https://forum.gitlab.com/t/upgrading-gitlab-from-14-0-to-14-3-2-fails-due-to-migration-issues/59479/8
  9. https://docs.gitlab.com/ee/update/background_migrations.html#database-migrations-failing-because-of-batched-background-migration-not-finished
  10. https://gitlab.com/gitlab-org/gitlab/-/issues/26845

标签:ce.0,gitlab,ce,升级,https,docker,com
From: https://www.cnblogs.com/ants_double/p/17346192.html

相关文章

  • Docker 启动异常 不显示报错信息
    错误的启动配置sudodockerrun--rm-d\-p80:80-p443:443nginx执行结果为返回容器id,但容器未启动,无报错信息sudodockerrun--rm-itd\-p80:80-p443:443nginxbash执行结果为容器启动并在后台挂起,但nginx未启动成功,无报错信息sudodockerrun......
  • android OTA升级(VAB分区)
    androidOTA升级(VAB分区) 升级开始前,升级程序update_engine将要升级的slot标记为unsuccessful,调用boot_ctl的SetSlotAsUnbootable()hardware/interfaces/boot/1.1/default/boot_control/libboot_control.cpp316boolBootControl::SetSlotAsUnbootable(unsignedintslot){......
  • docker一些常用命令
    dockerversion:查看Docker版本信息。该命令可以查看当前安装的Docker版本信息,包括Docker引擎、客户端、API等版本。dockerinfo:查看Docker的详细信息。该命令可以查看Docker的详细信息,包括容器、镜像、网络等。dockersearch:搜索DockerHub上的镜像。该命令可以在Docke......
  • Docker_存储卷-挂载
    Docker存储卷volumeDocker-managedvolume(docker管理卷)Bindmountvolume(绑定挂载卷)挂载Docker提供了3种方法将数据从Docker宿主机挂载(mount)到容器:volumes,Volumes由Docker管理,存储在宿主机的某个地方(在linux上是/var/lib/docker/volumes/ 受控存储bi......
  • docker启动Redis
    1.dockerhub中寻找对应版本2.dockerpull redis:6.0.193.运行Redis1.前台运行dockerrun-p6379:6379--nameredis1redis:6.0.19--restart=always2.后台运行dockerrun-d-p6379:6379--nameredis2redis:6.0.19--restart=always-p:指定端口-d:后台运......
  • 如何在X86_64系统上运行arm架构的docker容器——(异构/不同架构)CPU下的容器启动
    近期使用华为的人工智能集群,其中不仅要求异构加速端需要使用昇腾的硬件,更是要求CPU是arm架构的,因此就导致在本地x86电脑上难以对云端的arm版本的镜像进行软件安装和打包操作,为此我们需要在x86架构的本地CPU上运行arm架构的docker镜像。本文给出两种解决方式,其本质都是一样的,都是使......
  • 【IT老齐001】单体架构升级问题
    【IT老齐001】单体架构升级问题不谈场景的架构设计都是耍流氓架构没有对不对,只有合不合适架构是宏观设计的标准框架是具体实现的规则架构是取舍的艺术场景举例系统面临大量文件读写影响服务器磁盘IO导致数据库查询高延迟初级解决方案Redis通过在内存中的高吞吐完......
  • 上海交大软件学院课件 NPM、PYPI、DockerHub 备份
    sjtu_se_101_ics1Dockerdockerpullapachecn0/sjtu-se101-ics1dockerrun-tid-p<port>:80apachecn0/sjtu-se101-ics1#访问http://localhost:{port}查看文档PYPIpipinstallsjtu-se101-ics1sjtu-se101-ics1<port>#访问http://localhost:{port}查看文档NPMnpm......
  • 主从redis部署(docker)
    首先,我准备了两台linux,一台准备当作master,ip是192.168.241.128,另一台是当作slave,ip是192.168.241.129。1.安装redisdockerpullredis2.下载对应版本的redis.conf可以从github上下载。新建配置环境目录和持久化数据目录。mkdir-p/home/redis/datamkdir-p/home/redis/c......
  • wsl2中docker启动不了的问题解决方法
    在wsl2的ubuntu系统中安装docker后,sudoservicedockerstart一直启动不起来在网上找到了解决方案https://juejin.cn/post/7197594278083919932解决方法这个错误提示通常是因为系统中使用的是经过修改的nftables,而Docker安装程序使用iptables进行NAT。为了解决这个问......