Docker部署的gitlab升级指南(15.11.X容器里升级PostgreSQL到13.8)

一、确定当前版本
#进入当前版本容器产看gitlab版本
docker exec -it gitlab cat /opt/gitlab/embedded/service/gitlab-rails/VERSION#显示版本如下
14.4.0
二、备份数据,防止升级发生意外
#执行备份命令
docker exec -ti gitlab gitlab-rake gitlab:backup:create#在持久化目录查看备份情况
ll /opt/gitlab/data/backups/
-rw-------  1  998 docker 342722560  6月  5 02:18 1654366714_2022_06_04_14.4.0_gitlab_backup.tar
-rw-------  1  998 docker 559196160  6月 11 22:40 1654958434_2022_06_11_14.4.0_gitlab_backup.tar
三、确定升级路线

docker环境部署gitlab的升级很简单,直接基于高版本的镜像运行容器即可;
需要注意的是gitlab的升级不能跨大版本升级,详见升级路径:
https://docs.gitlab.com/ee/update/index.html#upgrade-paths

可在此链接查看gitlab-ce的docker全部镜像:
https://hub.docker.com/r/gitlab/gitlab-ce/

升级路线图如下;

从14.4.0版本升级到16.Y.Z版本升级路线图为

14.4.0->14.6.2->14.9.5-> 14.10.4->15.0.2->15.1.0->15.4.0->15.6.1->15.8.0->15.9.0->15.11.0->16.0.1->16.0.8->16.1.5->16.3.6->16.7.3->16.Y.Z->

四、升级(共分4个版本升级)

1.14.4.0->14.6.2

#为了防止升级过程ssh终端造成问题,启用终端复用器tmux, 执行升级操作
#停止gitllab服务
docker stop gitlab && docker  rm gitlab#执行升级命令
docker run -d --restart=always -p 9980:9980 -p 10022:22 --name gitlab_15_9 --env GITLAB_OMNIBUS_CONFIG="external_url 'http://IP:9980/'; gitlab_rails['lfs_enabled'] = true;" -v /home/gitlab/config:/etc/gitlab  -v /home/gitlab/logs:/var/log/gitlab  -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:14.6.2-ce.0#查看升级日志,约10分钟左右升级成功
docker logs -f gitlab

2.14.6.2->14.9.5

#停止gitllab服务
docker stop gitlab && docker  rm gitlab#执行升级命令
docker run -d --restart=always -p 9980:9980 -p 10022:22 --name gitlab_15_9 --env GITLAB_OMNIBUS_CONFIG="external_url 'http://IP:9980/'; gitlab_rails['lfs_enabled'] = true;" -v /home/gitlab/config:/etc/gitlab  -v /home/gitlab/logs:/var/log/gitlab  -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:14.9.5-ce.0#查看升级日志,约10分钟左右升级成功
docker logs -f gitlab
从 GitLab 16开始就不支持 PostgreSQL 12。在升级到 GitLab 16.0或更高版本之前,至少将 PostgreSQL 升级到13.6版本。

要将Docker中的GitLab 15.11.0升级到16.0.1,并将容器内的PostgreSQL升级到13.6版本,请按照以下步骤操作:

升级到15.11.0版本后

docker exec -it <容器> /bin/bash

查看PostgreSQL版本

/opt/gitlab/embedded/bin/postgres --version

升级到PostgreSQL13.0以上

gitlab-ctl pg-upgrade -V 13

若提示报错: /var/opt/gitlab/postgresql/data.13 is not empty. Move or delete this directory to proceed with upgrade

把data.13删除即可:rm -rf /var/opt/gitlab/postgresql/data.13在执行:gitlab-ctl pg-upgrade -V 13

15.11.0>16.0.1

docker run -d --restart=always -p 9980:9980 -p 10022:22 --name gitlab_16_0 --env GITLAB_OMNIBUS_CONFIG="external_url 'http://IP:9980/'; gitlab_rails['lfs_enabled'] = true;" -v /home/gitlab/config:/etc/gitlab  -v /home/gitlab/logs:/var/log/gitlab  -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:16.0.1-ce.0

大多数安装可以跳过16.0、16.1和16.2,因为升级路径上的第一个必需停止点是16.3。在所有情况下,您都应该查看这些中间版本的说明。一些 GitLab 安装必须停止在这些中间版本,这取决于所使用的特性和环境的大小: 16.0.8: 用户表中有大量记录的实例。有关更多信息,请参见长时间运行的用户类型数据更改。16.1.5: 使用 NPM 包注册表的实例。16.2.8: 具有大量管道变量(包括历史管道)的实例。如果您的实例受到影响,并且您跳过了这些停止: 升级可能需要几个小时才能完成。该实例生成500个错误,直到所有数据库更改完成,然后 Puma 和 Sidekiq 必须重新启动。对于 Linux 包安装,会出现超时,并且需要手动解决方案来完成迁移。GitLab 16.0引入了围绕对项目规模实施限制的变化。在自我管理的情况下,如果使用这些限制,达到限制的项目在推送到同一组中未受影响的 Git 存储库时会导致错误消息。这些错误通常指的是超过零字节的限制(限制为0 B)。推送成功了,但错误暗示了其他情况,并可能导致自动化问题。阅读本期更多内容。这个 bug 在 GitLab 16.5及更高版本中得到了修复。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/626190.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

go的安装及配置

go的官方下载地址&#xff1a;All releases - The Go Programming Language​​​​​​ 1、找到对应的版本包下载&#xff0c;例如 wget https://golang.google.cn/dl/go1.21.6.linux-amd64.tar.gz 2、下载完成后配置解压Go源码包 tar -zxf go1.21.6.linux-amd64.tar.gz 3…

【IC设计】ICer‘s 乾坤大挪移——FSM状态机

目录 理论解读状态机定义状态转移图Mealy和Moore型状态机推荐写“新两段式状态机” 设计实战可乐机两种state的FSM&#xff08;异步复位&#xff09;4种状态的one-hot状态机4种状态的同步复位状态机蓄水池问题 参考链接 理论解读 状态机定义 状态机简写为 FSM&#xff08;Fin…

Python3 索引下标及切片完全指南

介绍 Python 字符串数据类型是由一个或多个字符组成的序列&#xff0c;可以包含字母、数字、空格字符或符号。由于字符串是一个序列&#xff0c;我们可以通过索引和切片的方式访问它&#xff0c;就像访问其他基于序列的数据类型一样。 本教程将指导您通过索引访问字符串&…

docker 学习命令整理

文章目录 docker 学习命令整理(积累中...)0. 启动/停止1. 运行2. 查看运行中docker3. 删除指定container4. 查看本地镜像5. 拉取指定镜像6. 新起终端进入同一container7. 取消sudo8. 查看docker状态9. 查看docker存储10.删除镜像11.删除容器12. qemu12.1 安装12.2 卸载qemu 附&…

网络攻击与检测防御:维护数字安全的关键挑战

随着数字化时代的深入&#xff0c;网络攻击已成为企业和个人面临的严峻挑战之一。本文将深入探讨不同类型的网络攻击&#xff0c;以及有效的检测和防御策略&#xff0c;以确保网络系统的安全性和稳定性。 1. 常见网络攻击类型&#xff1a; DDoS 攻击&#xff1a;分布式拒绝服…

IOC之Spring统一资源加载策略

前言 在学 Java的时候&#xff0c;我们学习了一个标准类 java.net.URL&#xff0c;该类在 Java SE 中的定位为统一资源定位器&#xff08;Uniform Resource Locator&#xff09;&#xff0c;但是我们知道它的实现基本只限于网络形式发布的资源的查找和定位。然而&#xff0c;实…

生成式对抗网络GAN

Generative Adversarial Nets由伊恩古德费洛&#xff08;Ian J.Goodfellow&#xff09;等人于2014年发表在Conference on Neural Information Processing Systems (NeurIPS)上。NeurIPS是机器学习和计算神经科学领域的顶级国际学术会议之一。 1. GAN在哪些领域大放异彩 图像生…

黑马苍穹外卖学习Day6

HttpClient 介绍 HttpClient 是 Apache 提供的一个开源的 Java HTTP 客户端库&#xff0c;用于发送 HTTP 请求和处理 HTTP 响应。它提供了一种更简便的方式来执行 HTTP 请求&#xff0c;并支持多种协议&#xff0c;如 HTTP、HTTPS、FTP 等。 使用 HttpClient 可以方便地与远程…

MySQL体系结构

MySQL体系结构 MySQL采用的是客户/服务器体系结构&#xff0c;实际是有两个程序&#xff0c;一个是MySQL服务器程序&#xff0c;指的是mysqld程序&#xff0c;运行在存放数据库的机器上&#xff0c;负责在网络上监听并处理来自客户的服务请求&#xff0c;根据这些请求去访问数据…

一种基于智能手机的地下停车场寻车系统

原文来自于《Help You Locate the Car: a Smartphone-based Car-finding System in Underground Parking Lot》 这篇论文提出了一种基于智能手机的地下停车场寻车系统。该系统旨在帮助驾驶员在没有额外设备和地图支持的情况下找到他们的车辆。主要内容和贡献如下: 系统概述:目…

CNN/DailyMail训练文本摘要模型

要使用 TensorFlow Datasets (TFDS) 来训练一个文本摘要模型&#xff0c;可以选择一个包含文章和摘要的数据集&#xff0c;例如 CNN/DailyMail 数据集。 这个数据集通常用于训练和评估文本摘要模型。 以下是使用 TFDS 加载数据集并训练一个简单的序列到序列 (seq2seq) 模型的…

边缘计算的挑战和机遇(结合RDH-EI)

边缘计算的挑战和机遇 边缘计算面临着数据安全与隐私保护、网络稳定性等挑战&#xff0c;但同时也带来了更强的实时性和本地处理能力&#xff0c;为企业降低了成本和压力&#xff0c;提高了数据处理效率。因此&#xff0c;边缘计算既带来了挑战也带来了机遇&#xff0c;需要我…

虚拟机安装openjdk 输入 javac 报错 javac -version bash: javac: 未找到命令... 相似命令是: ‘java‘

问题 [root#localhost java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64]# javac -version bash: javac: 未找到命令... 相似命令是&#xff1a; java [root#localhost java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64]# java -version openjdk version "1.8.0_392" …

JSP-简化

一、引入 在介绍完JSP的概念之后&#xff0c;我们深感JSP页面开发的困难&#xff0c;但是JSP并非没有做丝毫的努力。本篇将介绍JSP的两个快捷开发手段&#xff1a;EL表达式与JSTL。我们已知道JSP的复杂是来自于将HTML代码与Java代码揉杂在一起&#xff0c;于是我们通过上述的两…

Unity之物理系统

专栏的上一篇角色控制器控制角色移动跳崖&#xff0c;这一篇来说说Unity的物理系统。 本篇小编还要带大家做一个碰撞检测效果实例&#xff0c;先放效果图&#xff1a;流星撞击地面产生爆炸效果 一、Rigidbody 我们给胶囊添加了 Rigidbody 组件它才有的重力&#xff0c;我们来…

逸学Docker【java工程师基础】3.3Docker安装nacos

docker pull nacos/nacos-server docker network create nacos_network #创建容器网络 docker run -d \ --name nacos \ --privileged \ --cgroupns host \ --env JVM_XMX256m \ --env MODEstandalone \ --env JVM_XMS256m \ -p 8848:8848/tcp \ -p 9848:9848…

图解拒付平台:如何应对用户的拒付

这是《百图解码支付系统设计与实现》专栏系列文章中的第&#xff08;5&#xff09;篇。 本章主要讲清楚支付系统中拒付涉及的基本概念&#xff0c;产品架构、系统架构&#xff0c;以及一些核心的流程和相关领域模型、状态机设计等。 1. 前言 拒付在中国比较少见&#xff0c;但…

教你用五步让千年的兵马俑跳上现代的科目三?

以下是一张我上月去西安拍的兵马俑照片&#xff1a; 使用通义千问&#xff0c;5步就能它舞动起来&#xff0c;跳上现在流行的“科目三”舞蹈。 千年兵马俑跳上科目三 全民舞王 第1步 打开通义千问App&#xff0c;我使用的是华为手机&#xff0c;苹果版的没试&#xff1b; 在…

【算法题】53. 最大子数组和

题目 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的一个连续部分 示例 1&#xff1a; 输入&#xff1a;nums [-2,1,-3,4,-1,2,1,-5,4] 输出&#x…

把握现货黄金的基本操作技巧

在投资市场这个大舞台上&#xff0c;有各种各样的投资产品供投资者选择&#xff0c;其中黄金作为一种重要的投资资产&#xff0c;一直受到广大投资者的青睐。然而&#xff0c;黄金交易并非易事&#xff0c;需要掌握一定的操作技巧。那么&#xff0c;如何才能把握住现货黄金的操…